From 0f6ddb372bc24a010c85849dfc80f72fc8cd604d Mon Sep 17 00:00:00 2001 From: David Ostrovsky Date: Sat, 18 Mar 2017 16:13:26 +0100 Subject: [PATCH] Add remaining parts of the bazel build Add bazel build for ui and junit.http, and the test packages. A number of different test labels are supported: api attributes dfs diff http lfs lfs-server nls notes pack patch pgm reftree revplot revwalk storage submodule symlinks transport treewalk util To run all tests: bazel test //... To run specific tests, using labels: bazel test --test_tag_filters=api,dfs,revplot,treewalk //... Change-Id: Ic41b05a79d855212e67b1b4707e9c6b4dc9ea70d Signed-off-by: David Ostrovsky Signed-off-by: Jonathan Nieder --- BUILD | 2 + WORKSPACE | 50 +++++++++++ lib/BUILD | 111 ++++++++++++++++++++++++- org.eclipse.jgit.http.test/BUILD | 42 ++++++++++ org.eclipse.jgit.junit.http/BUILD | 22 +++++ org.eclipse.jgit.lfs.server.test/BUILD | 49 +++++++++++ org.eclipse.jgit.lfs.test/BUILD | 31 +++++++ org.eclipse.jgit.pgm.test/BUILD | 40 +++++++++ org.eclipse.jgit.pgm/BUILD | 38 +++++++++ org.eclipse.jgit.test/BUILD | 61 ++++++++++++++ org.eclipse.jgit.test/tests.bzl | 51 ++++++++++++ org.eclipse.jgit.ui/BUILD | 9 ++ 12 files changed, 504 insertions(+), 2 deletions(-) create mode 100644 org.eclipse.jgit.http.test/BUILD create mode 100644 org.eclipse.jgit.junit.http/BUILD create mode 100644 org.eclipse.jgit.lfs.server.test/BUILD create mode 100644 org.eclipse.jgit.lfs.test/BUILD create mode 100644 org.eclipse.jgit.pgm.test/BUILD create mode 100644 org.eclipse.jgit.pgm/BUILD create mode 100644 org.eclipse.jgit.test/BUILD create mode 100644 org.eclipse.jgit.test/tests.bzl create mode 100644 org.eclipse.jgit.ui/BUILD diff --git a/BUILD b/BUILD index 683ef9e25..be6dd767d 100644 --- a/BUILD +++ b/BUILD @@ -5,6 +5,8 @@ genrule( testonly = 1, srcs = [ "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.pgm:pgm", + "//org.eclipse.jgit.ui:ui", "//org.eclipse.jgit.archive:jgit-archive", "//org.eclipse.jgit.http.apache:http-apache", "//org.eclipse.jgit.http.server:jgit-servlet", diff --git a/WORKSPACE b/WORKSPACE index 3551c1ae0..bcfc4f685 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -33,6 +33,12 @@ maven_jar( sha1 = "f91b7a4aadc5cf486df6e4634748d7dd7a73f06d", ) +maven_jar( + name = "commons_codec", + artifact = "commons-codec:commons-codec:1.4", + sha1 = "4216af16d38465bbab0f3dff8efa14204f7a399a", +) + maven_jar( name = "commons_logging", artifact = "commons-logging:commons-logging:1.1.3", @@ -98,3 +104,47 @@ maven_jar( artifact = "com.google.code.gson:gson:2.2.4", sha1 = "a60a5e993c98c864010053cb901b7eab25306568", ) + +JETTY_VER = "9.4.1.v20170120" + +maven_jar( + name = "jetty_servlet", + artifact = "org.eclipse.jetty:jetty-servlet:" + JETTY_VER, + sha1 = "406a6edc22311629b41e98ab26901574d243d408", + src_sha1 = "57cf143c4110e0d43635406a1052013bbf29a4da", +) + +maven_jar( + name = "jetty_security", + artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER, + sha1 = "677aa94298f42d322e2f19045693a233613537b6", + src_sha1 = "933928163506a8d366652fb895e770fcf3f9e8fe", +) + +maven_jar( + name = "jetty_server", + artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER, + sha1 = "4cf4bea26592de98b9126ac60bc91fb669176a63", + src_sha1 = "2035ab117da534f9a525adfaa9f3a5634d202707", +) + +maven_jar( + name = "jetty_http", + artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER, + sha1 = "c9c9d5b15b3bb41ae9ae588b7aede301b42186f6", + src_sha1 = "f1cbf0e1329ed722bf8eba74e4c4b94619dfe8a8", +) + +maven_jar( + name = "jetty_io", + artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER, + sha1 = "6d2d7c82a4b5306ec7bf2d6eb4b67460fce77240", + src_sha1 = "404b560a0d289c904b72d02e2dbb3b9ad73db219", +) + +maven_jar( + name = "jetty_util", + artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER, + sha1 = "810c4e4275e399feaf6e8bc51aa72645bdc06205", + src_sha1 = "b0dea459e5646e9ccf250a236718d720fba7717c", +) diff --git a/lib/BUILD b/lib/BUILD index 40dfcf686..10a916bdd 100644 --- a/lib/BUILD +++ b/lib/BUILD @@ -1,18 +1,58 @@ +java_library( + name = "args4j", + visibility = [ + "//org.eclipse.jgit.pgm:__pkg__", + "//org.eclipse.jgit.pgm.test:__pkg__", + ], + exports = ["@args4j//jar"], +) + java_library( name = "commons-compress", - visibility = ["//org.eclipse.jgit.archive:__pkg__"], + visibility = [ + "//org.eclipse.jgit.archive:__pkg__", + "//org.eclipse.jgit.pgm.test:__pkg__", + ], exports = ["@commons_compress//jar"], ) +java_library( + name = "commons-codec", + exports = ["@commons_codec//jar"], +) + +java_library( + name = "commons-logging", + testonly = 1, + visibility = ["//visibility:public"], + exports = ["@commons_logging//jar"], +) + java_library( name = "gson", visibility = ["//org.eclipse.jgit.lfs.server:__pkg__"], exports = ["@gson//jar"], ) +java_library( + name = "hamcrest-core", + testonly = 1, + exports = ["@hamcrest_core//jar"], +) + +java_library( + name = "hamcrest-library", + testonly = 1, + exports = ["@hamcrest_library//jar"], +) + java_library( name = "httpclient", - visibility = ["//org.eclipse.jgit.http.apache:__pkg__"], + visibility = [ + "//org.eclipse.jgit.http.apache:__pkg__", + "//org.eclipse.jgit.lfs.server.test:__pkg__", + "//org.eclipse.jgit.pgm:__pkg__", + ], exports = ["@httpclient//jar"], ) @@ -21,6 +61,8 @@ java_library( visibility = [ "//org.eclipse.jgit.http.apache:__pkg__", "//org.eclipse.jgit.lfs.server:__pkg__", + "//org.eclipse.jgit.lfs.server.test:__pkg__", + "//org.eclipse.jgit.pgm:__pkg__", ], exports = ["@httpcore//jar"], ) @@ -31,6 +73,49 @@ java_library( exports = ["@javaewah//jar"], ) +java_library( + name = "jetty-http", + # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it. + visibility = ["//visibility:public"], + exports = ["@jetty_http//jar"], + runtime_deps = [":commons-codec"], +) + +java_library( + name = "jetty-io", + # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it. + visibility = ["//visibility:public"], + exports = ["@jetty_io//jar"], +) + +java_library( + name = "jetty-security", + # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it. + visibility = ["//visibility:public"], + exports = ["@jetty_security//jar"], +) + +java_library( + name = "jetty-server", + # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it. + visibility = ["//visibility:public"], + exports = ["@jetty_server//jar"], +) + +java_library( + name = "jetty-servlet", + # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it. + visibility = ["//visibility:public"], + exports = ["@jetty_servlet//jar"], +) + +java_library( + name = "jetty-util", + # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it. + visibility = ["//visibility:public"], + exports = ["@jetty_util//jar"], +) + java_library( name = "jsch", visibility = ["//org.eclipse.jgit:__pkg__"], @@ -42,6 +127,10 @@ java_library( testonly = 1, visibility = ["//visibility:public"], exports = ["@junit//jar"], + runtime_deps = [ + ":hamcrest-core", + ":hamcrest-library", + ], ) java_library( @@ -49,7 +138,11 @@ java_library( visibility = [ "//org.eclipse.jgit.http.apache:__pkg__", "//org.eclipse.jgit.http.server:__pkg__", + "//org.eclipse.jgit.http.test:__pkg__", + "//org.eclipse.jgit.junit.http:__pkg__", "//org.eclipse.jgit.lfs.server:__pkg__", + "//org.eclipse.jgit.lfs.server.test:__pkg__", + "//org.eclipse.jgit.pgm:__pkg__", ], exports = ["@servlet_api_3_1//jar"], ) @@ -59,3 +152,17 @@ java_library( visibility = ["//visibility:public"], exports = ["@log_api//jar"], ) + +java_library( + name = "slf4j-simple", + testonly = 1, + visibility = ["//visibility:public"], + exports = ["@slf4j_simple//jar"], +) + +java_library( + name = "xz", + testonly = 1, + visibility = ["//visibility:public"], + exports = ["@tukaani_xz//jar"], +) diff --git a/org.eclipse.jgit.http.test/BUILD b/org.eclipse.jgit.http.test/BUILD new file mode 100644 index 000000000..ce2d6112f --- /dev/null +++ b/org.eclipse.jgit.http.test/BUILD @@ -0,0 +1,42 @@ +load( + "@com_googlesource_gerrit_bazlets//tools:junit.bzl", + "junit_tests", +) + +junit_tests( + name = "http", + srcs = glob(["tst/**/*.java"]), + tags = ["http"], + deps = [ + ":helpers", + "//lib:commons-logging", + "//lib:jetty-http", + "//lib:jetty-io", + "//lib:jetty-security", + "//lib:jetty-server", + "//lib:jetty-servlet", + "//lib:jetty-util", + "//lib:junit", + "//lib:servlet-api", + "//lib:slf4j-api", + "//lib:slf4j-simple", + "//org.eclipse.jgit.http.apache:http-apache", + "//org.eclipse.jgit.http.server:jgit-servlet", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit.http:junit-http", + "//org.eclipse.jgit.junit:junit", + ], +) + +java_library( + name = "helpers", + testonly = 1, + srcs = glob(["src/**/*.java"]), + deps = [ + "//lib:junit", + "//org.eclipse.jgit.http.server:jgit-servlet", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit.http:junit-http", + "//org.eclipse.jgit.junit:junit", + ], +) diff --git a/org.eclipse.jgit.junit.http/BUILD b/org.eclipse.jgit.junit.http/BUILD new file mode 100644 index 000000000..be6e1ae3b --- /dev/null +++ b/org.eclipse.jgit.junit.http/BUILD @@ -0,0 +1,22 @@ +package(default_visibility = ["//visibility:public"]) + +java_library( + name = "junit-http", + testonly = 1, + srcs = glob(["src/**"]), + resources = glob(["resources/**"]), + # TODO(davido): we want here provided deps + deps = [ + "//lib:jetty-http", + "//lib:jetty-security", + "//lib:jetty-server", + "//lib:jetty-servlet", + "//lib:jetty-util", + "//lib:junit", + "//lib:servlet-api", + "//lib:slf4j-api", + "//org.eclipse.jgit.http.server:jgit-servlet", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + ], +) diff --git a/org.eclipse.jgit.lfs.server.test/BUILD b/org.eclipse.jgit.lfs.server.test/BUILD new file mode 100644 index 000000000..1341dd601 --- /dev/null +++ b/org.eclipse.jgit.lfs.server.test/BUILD @@ -0,0 +1,49 @@ +load( + "@com_googlesource_gerrit_bazlets//tools:junit.bzl", + "junit_tests", +) + +TEST_BASE = ["tst/org/eclipse/jgit/lfs/server/fs/LfsServerTest.java"] + +DEPS = [ + "//org.eclipse.jgit.lfs.test:helpers", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + "//org.eclipse.jgit.junit.http:junit-http", + "//org.eclipse.jgit.lfs:jgit-lfs", + "//org.eclipse.jgit.lfs.server:jgit-lfs-server", + "//lib:commons-logging", + "//lib:httpcore", + "//lib:httpclient", + "//lib:junit", + "//lib:jetty-http", + "//lib:jetty-io", + "//lib:jetty-server", + "//lib:jetty-servlet", + "//lib:jetty-security", + "//lib:jetty-util", + "//lib:servlet-api", +] + +junit_tests( + name = "lfs_server", + srcs = glob( + ["tst/**/*.java"], + exclude = TEST_BASE, + ), + jvm_flags = [ + "-Xmx256m", + "-Dfile.encoding=UTF-8", + ], + tags = ["lfs-server"], + deps = DEPS + [ + ":helpers", + ], +) + +java_library( + name = "helpers", + testonly = 1, + srcs = TEST_BASE, + deps = DEPS, +) diff --git a/org.eclipse.jgit.lfs.test/BUILD b/org.eclipse.jgit.lfs.test/BUILD new file mode 100644 index 000000000..213ba5794 --- /dev/null +++ b/org.eclipse.jgit.lfs.test/BUILD @@ -0,0 +1,31 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@com_googlesource_gerrit_bazlets//tools:junit.bzl", + "junit_tests", +) + +junit_tests( + name = "lfs", + srcs = glob(["tst/**/*.java"]), + tags = ["lfs"], + deps = [ + ":helpers", + "//lib:junit", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + "//org.eclipse.jgit.lfs:jgit-lfs", + ], +) + +java_library( + name = "helpers", + testonly = 1, + srcs = glob(["src/**/*.java"]), + deps = [ + "//lib:junit", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + "//org.eclipse.jgit.lfs:jgit-lfs", + ], +) diff --git a/org.eclipse.jgit.pgm.test/BUILD b/org.eclipse.jgit.pgm.test/BUILD new file mode 100644 index 000000000..5d4a175f7 --- /dev/null +++ b/org.eclipse.jgit.pgm.test/BUILD @@ -0,0 +1,40 @@ +load( + "@com_googlesource_gerrit_bazlets//tools:junit.bzl", + "junit_tests", +) + +junit_tests( + name = "pgm", + srcs = glob(["tst/**/*.java"]), + jvm_flags = [ + "-Xmx256m", + "-Dfile.encoding=UTF-8", + ], + tags = ["pgm"], + deps = [ + ":helpers", + "//lib:commons-compress", + "//lib:javaewah", + "//lib:junit", + "//lib:slf4j-api", + "//lib:slf4j-simple", + "//lib:xz", + "//org.eclipse.jgit.archive:jgit-archive", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + "//org.eclipse.jgit.pgm:pgm", + ], +) + +java_library( + name = "helpers", + testonly = 1, + srcs = glob(["src/**/*.java"]), + deps = [ + "//lib:args4j", + "//lib:junit", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + "//org.eclipse.jgit.pgm:pgm", + ], +) diff --git a/org.eclipse.jgit.pgm/BUILD b/org.eclipse.jgit.pgm/BUILD new file mode 100644 index 000000000..6d3279031 --- /dev/null +++ b/org.eclipse.jgit.pgm/BUILD @@ -0,0 +1,38 @@ +java_library( + name = "pgm", + srcs = glob(["src/**"]), + resource_strip_prefix = "org.eclipse.jgit.pgm/resources", + resources = glob(["resources/**"]), + visibility = ["//visibility:public"], + deps = [ + ":services", + "//lib:args4j", + "//lib:httpclient", + "//lib:httpcore", + "//lib:jetty-http", + "//lib:jetty-io", + "//lib:jetty-security", + "//lib:jetty-server", + "//lib:jetty-servlet", + "//lib:jetty-util", + "//lib:servlet-api", + "//org.eclipse.jgit.archive:jgit-archive", + "//org.eclipse.jgit.http.apache:http-apache", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.lfs:jgit-lfs", + "//org.eclipse.jgit.lfs.server:jgit-lfs-server", + "//org.eclipse.jgit.ui:ui", + ], +) + +java_import( + name = "services", + jars = [":services_jar"], +) + +genrule( + name = "services_jar", + srcs = glob(["META-INF/services/*"]), + outs = ["services_jar.jar"], + cmd = "r=$$PWD && cd org.eclipse.jgit.pgm && zip -qr $$r/$@ .", +) diff --git a/org.eclipse.jgit.test/BUILD b/org.eclipse.jgit.test/BUILD new file mode 100644 index 000000000..ae6f24223 --- /dev/null +++ b/org.eclipse.jgit.test/BUILD @@ -0,0 +1,61 @@ +load(":tests.bzl", "tests") +load( + "@com_googlesource_gerrit_bazlets//tools:genrule2.bzl", + "genrule2", +) + +PKG = "tst/org/eclipse/jgit/" + +HELPERS = glob(["src/**/*.java"]) + [PKG + c for c in [ + "api/AbstractRemoteCommandTest.java", + "diff/AbstractDiffTestCase.java", + "internal/storage/file/GcTestCase.java", + "internal/storage/file/PackIndexTestCase.java", + "internal/storage/file/XInputStream.java", + "nls/GermanTranslatedBundle.java", + "nls/MissingPropertyBundle.java", + "nls/NoPropertiesBundle.java", + "nls/NonTranslatedBundle.java", + "revwalk/RevQueueTestCase.java", + "revwalk/RevWalkTestCase.java", + "transport/SpiTransport.java", + "treewalk/FileTreeIteratorWithTimeControl.java", + "treewalk/filter/AlwaysCloneTreeFilter.java", + "test/resources/SampleDataRepositoryTestCase.java", + "util/CPUTimeStopWatch.java", + "util/io/Strings.java", +]] + +DATA = [ + PKG + "lib/empty.gitindex.dat", + PKG + "lib/sorttest.gitindex.dat", +] + +tests(glob( + ["tst/**/*.java"], + exclude = HELPERS + DATA +)) + +java_library( + name = "helpers", + testonly = 1, + srcs = HELPERS, + resources = DATA, + deps = [ + "//lib:junit", + "//org.eclipse.jgit:jgit", + "//org.eclipse.jgit.junit:junit", + ], +) + +java_import( + name = "tst_rsrc", + jars = [":tst_rsrc_jar"], +) + +genrule2( + name = 'tst_rsrc_jar', + cmd = 'o=$$PWD/$@ && tar cf - $(SRCS) | tar -C $$TMP --strip-components=2 -xf - && cd $$TMP && zip -qr $$o .', + srcs = glob(['tst-rsrc/**']), + outs = ['tst_rsrc.jar',], +) diff --git a/org.eclipse.jgit.test/tests.bzl b/org.eclipse.jgit.test/tests.bzl new file mode 100644 index 000000000..d5cc2c986 --- /dev/null +++ b/org.eclipse.jgit.test/tests.bzl @@ -0,0 +1,51 @@ +load( + "@com_googlesource_gerrit_bazlets//tools:junit.bzl", + "junit_tests", +) + +def tests(tests): + for src in tests: + name = src[len('tst/'):len(src)-len('.java')].replace('/', '_') + labels = [] + if name.startswith('org_eclipse_jgit_'): + l = name[len('org.eclipse.jgit_'):] + if l.startswith('internal_storage_'): + l = l[len('internal.storage_'):] + i = l.find('_') + if i > 0: + labels.append(l[:i]) + else: + labels.append(i) + if 'lib' not in labels: + labels.append('lib') + + additional_deps = [] + if src.endswith("RootLocaleTest.java"): + additional_deps = [ + '//org.eclipse.jgit.pgm:pgm', + '//org.eclipse.jgit.ui:ui', + ] + if src.endswith("WalkEncryptionTest.java"): + additional_deps = [ + '//org.eclipse.jgit:insecure_cipher_factory', + ] + + junit_tests( + name = name, + tags = labels, + srcs = [src], + deps = additional_deps + [ + ':helpers', + ':tst_rsrc', + '//org.eclipse.jgit:jgit', + '//org.eclipse.jgit.junit:junit', + '//org.eclipse.jgit.lfs:jgit-lfs', + '@hamcrest_core//jar', + '@hamcrest_library//jar', + '@javaewah//jar', + '@junit//jar', + '@log_api//jar', + '@slf4j_simple//jar', + ], + jvm_flags = ["-Xmx256m", "-Dfile.encoding=UTF-8"], + ) diff --git a/org.eclipse.jgit.ui/BUILD b/org.eclipse.jgit.ui/BUILD new file mode 100644 index 000000000..85ae5c084 --- /dev/null +++ b/org.eclipse.jgit.ui/BUILD @@ -0,0 +1,9 @@ +package(default_visibility = ["//visibility:public"]) + +java_library( + name = "ui", + srcs = glob(["src/**"]), + resource_strip_prefix = "org.eclipse.jgit.ui/resources", + resources = glob(["resources/**"]), + deps = ["//org.eclipse.jgit:jgit"], +)