summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/languages/java
diff options
context:
space:
mode:
Diffstat (limited to 't/recipes/checks/languages/java')
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install3
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.classbin0 -> 122 bytes
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class1
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints1
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild1
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs2
-rwxr-xr-xt/recipes/checks/languages/java/java-class-format/build-spec/debian/rules19
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java8
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java8
-rw-r--r--t/recipes/checks/languages/java/java-class-format/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/java-class-format/eval/hints2
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in38
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild2
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest2
-rwxr-xr-xt/recipes/checks/languages/java/java-classpath/build-spec/debian/rules8
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java8
-rw-r--r--t/recipes/checks/languages/java/java-classpath/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/java-classpath/eval/hints1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/clean1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in73
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild4
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install2
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install4
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install1
-rwxr-xr-xt/recipes/checks/languages/java/java-jars/build-spec/debian/rules20
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl36
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java8
-rw-r--r--t/recipes/checks/languages/java/java-jars/eval/desc4
-rw-r--r--t/recipes/checks/languages/java/java-jars/eval/hints11
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.classbin0 -> 413 bytes
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jarbin0 -> 745 bytes
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java7
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/eval/hints1
50 files changed, 349 insertions, 0 deletions
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in
new file mode 100644
index 0000000..ba62050
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: java
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo-java
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install
new file mode 100644
index 0000000..c5226d3
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install
@@ -0,0 +1,3 @@
+mini.class usr/share/java/foo/
+mini.class usr/share/java/WEB-INF
+not-a-class-file.class usr/share/java/foo
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values
new file mode 100644
index 0000000..b9ec9d6
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-java-classfiles
+Description: Test Java classfile related tags
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.class b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.class
new file mode 100644
index 0000000..0206c61
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.class
Binary files differ
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class
new file mode 100644
index 0000000..cc63a04
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class
@@ -0,0 +1 @@
+This is not a Java .class file.
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc
new file mode 100644
index 0000000..6e101fa
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-java-classfiles
+Check: languages/java/bytecode
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints
new file mode 100644
index 0000000..7f3a686
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints
@@ -0,0 +1 @@
+libfoo-java (binary): package-installs-java-bytecode [usr/share/java/foo/mini.class]
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in
new file mode 100644
index 0000000..a3f96c7
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], javahelper, default-jdk-headless | default-jdk
+Rules-Requires-Root: no
+
+Package: libtest-java
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. First part.
+ .
+ This package should not be installed.
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild
new file mode 100644
index 0000000..f13db32
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild
@@ -0,0 +1 @@
+test.jar src
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs
new file mode 100644
index 0000000..867ff3b
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs
@@ -0,0 +1,2 @@
+testa.jar
+testb.jar
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/rules b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/rules
new file mode 100755
index 0000000..7e46dd0
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/rules
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+%:
+ dh $@ --with javahelper
+
+override_jh_build:
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7'
+ unzip test.jar
+ # Unknown class version
+ perl -i -pe 's/^(\xCA\xFE\xBA\xBE...)./$$1\x2A/' org/debian/lintian/TestA.class
+ # Java19 (unsupported)
+ perl -i -pe 's/^(\xCA\xFE\xBA\xBE...)./$$1\x3F/' org/debian/lintian/TestB.class
+ # Put them in separate Jars because Lintian stops when the first
+ # "unknown class format" is seen
+ zip -r testa.jar META-INF/ org/debian/lintian/TestA.class
+ zip -r testb.jar META-INF/ org/debian/lintian/TestB.class
+
+override_dh_auto_clean:
+ rm -fr META-INF/ org/
+ rm -f *.jar
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/fill-values b/t/recipes/checks/languages/java/java-class-format/build-spec/fill-values
new file mode 100644
index 0000000..856dd16
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: java-class-format
+Skeleton: upload-non-native
+Package-Architecture: all
+Description: Various checks for Java Class format
+Section: java
+Extra-Build-Depends: javahelper, default-jdk
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java
new file mode 100644
index 0000000..fa9bad9
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestA {
+ // An empty class should do.
+};
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java
new file mode 100644
index 0000000..eca69aa
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestB {
+ // An empty class should do.
+};
diff --git a/t/recipes/checks/languages/java/java-class-format/eval/desc b/t/recipes/checks/languages/java/java-class-format/eval/desc
new file mode 100644
index 0000000..c69ca55
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/eval/desc
@@ -0,0 +1,2 @@
+Testname: java-class-format
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/java-class-format/eval/hints b/t/recipes/checks/languages/java/java-class-format/eval/hints
new file mode 100644
index 0000000..5969a6b
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/eval/hints
@@ -0,0 +1,2 @@
+libtest-java (binary): unknown-java-class-version org/debian/lintian/TestA.class -> 42 [usr/share/java/testa-1.0.jar]
+libtest-java (binary): incompatible-java-bytecode-format Java19 version (Class format: 63)
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs
new file mode 100644
index 0000000..5e5f31e
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs
@@ -0,0 +1 @@
+cp-missing-2.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in
new file mode 100644
index 0000000..cc8ad52
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in
@@ -0,0 +1,38 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], javahelper (>= 0.32~), default-jdk-headlesss | default-jdk
+Rules-Requires-Root: no
+
+Package: libcp-missing-java
+Architecture: all
+Depends: ${misc:Depends}, libdepends-java
+Description: [% $description %] - missing
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ Test for missing classpaths.
+
+Package: libcp-relative-java
+Architecture: all
+Depends: ${misc:Depends}, libdepends-java
+Description: [% $description %] - relative
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ Test for relative classpaths.
+
+
+Package: binary-using-java
+Architecture: all
+Depends: ${misc:Depends}, libdepends-java
+Description: [% $description %] - binary
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ Test for classpaths in binary.
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild
new file mode 100644
index 0000000..cdcc483
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild
@@ -0,0 +1,2 @@
+cp-missing.jar src
+cp-relative.jar src
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs
new file mode 100644
index 0000000..702a7ca
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs
@@ -0,0 +1 @@
+cp-missing.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs
new file mode 100644
index 0000000..4f2e007
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs
@@ -0,0 +1 @@
+cp-relative.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest
new file mode 100644
index 0000000..c060eca
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest
@@ -0,0 +1,2 @@
+usr/share/java/cp-relative.jar:
+ Class-Path: obviously-relative/stuff.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/rules b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/rules
new file mode 100755
index 0000000..df7aa48
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/rules
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with javahelper
+
+override_jh_build:
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7'
+ cp cp-missing.jar cp-missing-2.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/fill-values b/t/recipes/checks/languages/java/java-classpath/build-spec/fill-values
new file mode 100644
index 0000000..91c9f1c
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: java-classpath
+Skeleton: upload-non-native
+Description: Various checks about JAR files
+Author: Vincent Fourmond <fourmond@debian.org>
+Section: java
+Extra-Build-Depends: javahelper, default-jdk
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java b/t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java
new file mode 100644
index 0000000..dacb2f2
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestA {
+ // An empty class should do.
+}; \ No newline at end of file
diff --git a/t/recipes/checks/languages/java/java-classpath/eval/desc b/t/recipes/checks/languages/java/java-classpath/eval/desc
new file mode 100644
index 0000000..7cb903d
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/eval/desc
@@ -0,0 +1,2 @@
+Testname: java-classpath
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/java-classpath/eval/hints b/t/recipes/checks/languages/java/java-classpath/eval/hints
new file mode 100644
index 0000000..6903914
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/eval/hints
@@ -0,0 +1 @@
+libcp-relative-java (binary): classpath-contains-relative-path obviously-relative/stuff.jar [usr/share/java/cp-relative-1.0.jar]
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/clean b/t/recipes/checks/languages/java/java-jars/build-spec/debian/clean
new file mode 100644
index 0000000..d392f0e
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/clean
@@ -0,0 +1 @@
+*.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in b/t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in
new file mode 100644
index 0000000..a54ccaf
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in
@@ -0,0 +1,73 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], javahelper, default-jdk-headless | default-jdk
+Rules-Requires-Root: no
+
+Package: libtesta-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - part A
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. First part.
+ .
+ This package should not be installed.
+
+Package: libcodeless-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - codeless
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ This package tests for codeless jars.
+
+Package: libmanifestless-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - manifestless
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ This package tests for mainifest-less code jars.
+
+Package: libtestc-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - part C
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. Third part.
+ .
+ This package should not be installed.
+
+Package: libtest-maven-plugin-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - part D
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. Fourth part.
+ .
+ This package should not be installed.
+
+Package: unparsable
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - unparsable
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. The unparsable part.
+ .
+ This package should not be installed.
+
+Package: libcontains-source-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - contains .java source
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ This package tests for .java files inside jars.
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild b/t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild
new file mode 100644
index 0000000..323c1da
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild
@@ -0,0 +1,4 @@
+testa.jar src
+testb.jar src
+testc.jar src
+testd.jar src
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs
new file mode 100644
index 0000000..e31d0ab
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs
@@ -0,0 +1 @@
+codeless.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs
new file mode 100644
index 0000000..db68d0e
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs
@@ -0,0 +1 @@
+contains-source.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs
new file mode 100644
index 0000000..7ae2544
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs
@@ -0,0 +1 @@
+manifestless.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install
new file mode 100644
index 0000000..b4f610f
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install
@@ -0,0 +1,2 @@
+testa.jar /usr/share/maven-repo/org/apache/maven/plugins/maven-site-plugin/2.1/
+testb.jar /usr/share/java/
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install
new file mode 100644
index 0000000..cf31c45
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install
@@ -0,0 +1,4 @@
+0.jar usr/share/java/
+0.jar usr/share/private-jars/
+testb.jar usr/lib/
+testc.jar usr/bin
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs
new file mode 100644
index 0000000..b1017a7
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs
@@ -0,0 +1 @@
+testa.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install
new file mode 100644
index 0000000..32c2610
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install
@@ -0,0 +1 @@
+testa.jar usr/share/private-jars
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/rules b/t/recipes/checks/languages/java/java-jars/build-spec/debian/rules
new file mode 100755
index 0000000..8ca4444
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/rules
@@ -0,0 +1,20 @@
+#!/usr/bin/make -f
+%:
+ dh $@ --with javahelper
+
+override_jh_build:
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7'
+ cp testa.jar testb.jar
+ cp testa.jar 0.jar
+ unzip testa.jar
+ zip -r codeless.jar META-INF/
+ zip -r manifestless.jar org/
+ touch org/debian/lintian/TestA.java
+ zip -r contains-source.jar META-INF/ org/
+ perl generate-unparsable.pl
+
+# Skip - it chokes on "unparsable.jar" and we don't need it
+override_jh_manifest override_jh_depends override_dh_strip_nondeterminism:
+
+override_dh_auto_clean:
+ rm -fr META-INF/ org/
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install
new file mode 100644
index 0000000..a734cf7
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install
@@ -0,0 +1 @@
+unparsable.jar usr/share/unparsable
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/fill-values b/t/recipes/checks/languages/java/java-jars/build-spec/fill-values
new file mode 100644
index 0000000..320d891
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: java-jars
+Skeleton: upload-non-native
+Description: Various checks about JAR files
+Author: Vincent Fourmond <fourmond@debian.org>
+Section: java
+Extra-Build-Depends: javahelper, default-jdk
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl b/t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl
new file mode 100644
index 0000000..eaed15b
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+# Generated with "hexdump -C <valid-file.zip> | head -n 10". Should
+# be a valid header of a truncated zip file. This is enough to fool
+# file 5.30 and earlier, but will obviously break if you try to parse
+# it in full.
+my $valid_header = <<'EOF';
+00000000 50 4b 03 04 0a 00 00 00 00 00 4c 59 9e 4a 00 00 |PK........LY.J..|
+00000010 00 00 00 00 00 00 00 00 00 00 04 00 1c 00 6f 72 |..............or|
+00000020 67 2f 55 54 09 00 03 20 c6 05 59 20 c6 05 59 75 |g/UT... ..Y ..Yu|
+00000030 78 0b 00 01 04 e8 03 00 00 04 e8 03 00 00 50 4b |x.............PK|
+00000040 03 04 0a 00 00 00 00 00 4c 59 9e 4a 00 00 00 00 |........LY.J....|
+00000050 00 00 00 00 00 00 00 00 0b 00 1c 00 6f 72 67 2f |............org/|
+00000060 64 65 62 69 61 6e 2f 55 54 09 00 03 20 c6 05 59 |debian/UT... ..Y|
+00000070 20 c6 05 59 75 78 0b 00 01 04 e8 03 00 00 04 e8 | ..Yux..........|
+00000080 03 00 00 50 4b 03 04 0a 00 00 00 00 00 4c 59 9e |...PK........LY.|
+00000090 4a 00 00 00 00 00 00 00 00 00 00 00 00 13 00 1c |J...............|
+EOF
+
+open(my $fd, '>', 'unparsable.jar');
+
+for my $line (split(m/\n/, $valid_header)) {
+ chomp($line);
+ next if $line =~ s/^\s*+(?:\#.*)?$//;
+ next if $line !~ s/^[0-9a-fA-F]+\s+//; # Remove leading "offset"
+ $line =~ s/\s*(?:\|.+\|\s*)?$//; # Remove trailing "display" part (if present)
+ for my $byte (split(m/\s++/, $line)) {
+ printf {$fd} '%c', hex($byte);
+ }
+}
+
+close($fd);
+
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java b/t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java
new file mode 100644
index 0000000..dacb2f2
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestA {
+ // An empty class should do.
+}; \ No newline at end of file
diff --git a/t/recipes/checks/languages/java/java-jars/eval/desc b/t/recipes/checks/languages/java/java-jars/eval/desc
new file mode 100644
index 0000000..3cff6bb
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/eval/desc
@@ -0,0 +1,4 @@
+Testname: java-jars
+Test-Against:
+ source-contains-prebuilt-java-object
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/java-jars/eval/hints b/t/recipes/checks/languages/java/java-jars/eval/hints
new file mode 100644
index 0000000..cd4bd34
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/eval/hints
@@ -0,0 +1,11 @@
+unparsable (binary): zip-parse-error format error: can't find EOCD signature [usr/share/unparsable/unparsable.jar]
+libtestc-java (binary): javalib-but-no-public-jars
+libtesta-java (binary): missing-dep-on-jarwrapper
+libtesta-java (binary): jar-not-in-usr-share [usr/lib/testb.jar]
+libtesta-java (binary): executable-jar-without-main-class [usr/bin/testc.jar]
+libtesta-java (binary): bad-jar-name [usr/share/java/0.jar]
+libtest-maven-plugin-java (binary): maven-plugin-in-usr-share-java [usr/share/java/testb.jar]
+libtest-maven-plugin-java (binary): bad-jar-name [usr/share/java/testb.jar]
+libmanifestless-java (binary): missing-manifest [usr/share/java/manifestless-1.0.jar]
+libcontains-source-java (binary): jar-contains-source org/debian/lintian/TestA.java [usr/share/java/contains-source-1.0.jar]
+libcodeless-java (binary): codeless-jar [usr/share/java/codeless-1.0.jar]
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values
new file mode 100644
index 0000000..01a1fce
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: prebuilt-java-object
+Skeleton: upload-native
+Description: Source package with a prebuilt java object
+Section: java
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.class b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.class
new file mode 100644
index 0000000..b7edf6d
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.class
Binary files differ
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jar b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jar
new file mode 100644
index 0000000..fa91875
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jar
Binary files differ
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java
new file mode 100644
index 0000000..8a6cd64
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java
@@ -0,0 +1,7 @@
+package HelloWorld;
+
+class HelloWorld {
+ public void hello() {
+ System.out.println("Hello World!");
+ }
+}
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/eval/desc b/t/recipes/checks/languages/java/prebuilt-java-object/eval/desc
new file mode 100644
index 0000000..e294bed
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/eval/desc
@@ -0,0 +1,2 @@
+Testname: prebuilt-java-object
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/eval/hints b/t/recipes/checks/languages/java/prebuilt-java-object/eval/hints
new file mode 100644
index 0000000..9522af5
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/eval/hints
@@ -0,0 +1 @@
+prebuilt-java-object (source): source-contains-prebuilt-java-object [HelloWorld.jar]