diff options
Diffstat (limited to '')
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] |