summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/languages/java/java-jars
diff options
context:
space:
mode:
Diffstat (limited to '')
-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
17 files changed, 175 insertions, 0 deletions
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]