]> source.dussan.org Git - jgit.git/commitdiff
Add remaining parts of the bazel build 46/93346/10
authorDavid Ostrovsky <david@ostrovsky.org>
Sat, 18 Mar 2017 15:13:26 +0000 (16:13 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Tue, 21 Mar 2017 08:24:12 +0000 (09:24 +0100)
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 <david@ostrovsky.org>
Signed-off-by: Jonathan Nieder <jrn@google.com>
12 files changed:
BUILD
WORKSPACE
lib/BUILD
org.eclipse.jgit.http.test/BUILD [new file with mode: 0644]
org.eclipse.jgit.junit.http/BUILD [new file with mode: 0644]
org.eclipse.jgit.lfs.server.test/BUILD [new file with mode: 0644]
org.eclipse.jgit.lfs.test/BUILD [new file with mode: 0644]
org.eclipse.jgit.pgm.test/BUILD [new file with mode: 0644]
org.eclipse.jgit.pgm/BUILD [new file with mode: 0644]
org.eclipse.jgit.test/BUILD [new file with mode: 0644]
org.eclipse.jgit.test/tests.bzl [new file with mode: 0644]
org.eclipse.jgit.ui/BUILD [new file with mode: 0644]

diff --git a/BUILD b/BUILD
index 683ef9e25f6b1fcac0bc57a0539a6b12fe922bc2..be6dd767d5b715e88ef9e57c6d8200d50bd91700 100644 (file)
--- 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",
index 3551c1ae0197bb0b09dfe4c750fa502f9752d34c..bcfc4f685d98751c9a752e98406606ab466715cd 100644 (file)
--- 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",
+)
index 40dfcf686ffe706969c32cff4afbabc71892c09c..10a916bddb51b6d52636f20793b2f9c9226abbac 100644 (file)
--- 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 (file)
index 0000000..ce2d611
--- /dev/null
@@ -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 (file)
index 0000000..be6e1ae
--- /dev/null
@@ -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 (file)
index 0000000..1341dd6
--- /dev/null
@@ -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 (file)
index 0000000..213ba57
--- /dev/null
@@ -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 (file)
index 0000000..5d4a175
--- /dev/null
@@ -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 (file)
index 0000000..6d32790
--- /dev/null
@@ -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 (file)
index 0000000..ae6f242
--- /dev/null
@@ -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 (file)
index 0000000..d5cc2c9
--- /dev/null
@@ -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 (file)
index 0000000..85ae5c0
--- /dev/null
@@ -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"],
+)