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