Control: tag -1 patch

Hi,

Santiago Vila <sanv...@debian.org> (2018-12-29):
>       xargs --verbose clojure -cp 
> /<<PKGBUILDDIR>>/puppetlabs-ring-middleware.jar:/usr/share/java/clojure.jar:/usr/share/java/clj-time.jar:/usr/share/java/cheshire.jar:/usr/share/java/tools.logging.jar:/usr/share/java/prismatic-schema.jar:/usr/share/java/puppetlabs-http-client.jar:/usr/share/java/kitchensink.jar:/usr/share/java/ssl-utils.jar:/usr/share/java/ring-core.jar:/usr/share/java/slingshot.jar:/usr/share/java/trapperkeeper-test.jar:/usr/share/java/trapperkeeper-webserver-jetty9.jar:/usr/share/java/kitchensink-test.jar:/usr/share/java/compojure.jar:/usr/share/java/tools.reader.jar:/usr/share/java/tools.macro.jar)
> clojure -cp 
> /<<PKGBUILDDIR>>/puppetlabs-ring-middleware.jar:/usr/share/java/clojure.jar:/usr/share/java/clj-time.jar:/usr/share/java/cheshire.jar:/usr/share/java/tools.logging.jar:/usr/share/java/prismatic-schema.jar:/usr/share/java/puppetlabs-http-client.jar:/usr/share/java/kitchensink.jar:/usr/share/java/ssl-utils.jar:/usr/share/java/ring-core.jar:/usr/share/java/slingshot.jar:/usr/share/java/trapperkeeper-test.jar:/usr/share/java/trapperkeeper-webserver-jetty9.jar:/usr/share/java/kitchensink-test.jar:/usr/share/java/compojure.jar:/usr/share/java/tools.reader.jar:/usr/share/java/tools.macro.jar
>  ./puppetlabs/ring_middleware/core_test.clj 
> ./puppetlabs/ring_middleware/utils_test.clj 
> ./puppetlabs/ring_middleware/testutils/common.clj 
> WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: 
> puppetlabs.kitchensink.core, being replaced by: 
> #'puppetlabs.kitchensink.core/boolean?
> WARNING: uuid? already refers to: #'clojure.core/uuid? in namespace: 
> puppetlabs.kitchensink.core, being replaced by: 
> #'puppetlabs.kitchensink.core/uuid?
> Exception in thread "main" java.io.FileNotFoundException: Could not locate 
> puppetlabs/ring_middleware/testutils/common__init.class or 
> puppetlabs/ring_middleware/testutils/common.clj on classpath. Please check 
> that namespaces with dashes use underscores in the Clojure file name., 
> compiling:(/<<PKGBUILDDIR>>/test/./puppetlabs/ring_middleware/core_test.clj:1:1)
>       at clojure.lang.Compiler.load(Compiler.java:7526)
>       at clojure.lang.Compiler.loadFile(Compiler.java:7452)
>       at clojure.main$load_script.invokeStatic(main.clj:278)
>       at clojure.main$script_opt.invokeStatic(main.clj:338)
>       at clojure.main$script_opt.invoke(main.clj:333)
>       at clojure.main$main.invokeStatic(main.clj:424)
>       at clojure.main$main.doInvoke(main.clj:387)
>       at clojure.lang.RestFn.applyTo(RestFn.java:137)
>       at clojure.lang.Var.applyTo(Var.java:702)
>       at clojure.main.main(main.java:37)
> Caused by: java.io.FileNotFoundException: Could not locate 
> puppetlabs/ring_middleware/testutils/common__init.class or 
> puppetlabs/ring_middleware/testutils/common.clj on classpath. Please check 
> that namespaces with dashes use underscores in the Clojure file name.
>       at clojure.lang.RT.load(RT.java:463)
>       at clojure.lang.RT.load(RT.java:426)
>       at clojure.core$load$fn__9115.invoke(core.clj:6046)
>       at clojure.core$load.invokeStatic(core.clj:6045)
>       at clojure.core$load.doInvoke(core.clj:6029)
>       at clojure.lang.RestFn.invoke(RestFn.java:408)
>       at clojure.core$load_one.invokeStatic(core.clj:5848)
>       at clojure.core$load_one.invoke(core.clj:5843)
>       at clojure.core$load_lib$fn__9060.invoke(core.clj:5888)
>       at clojure.core$load_lib.invokeStatic(core.clj:5887)
>       at clojure.core$load_lib.doInvoke(core.clj:5868)
>       at clojure.lang.RestFn.applyTo(RestFn.java:142)
>       at clojure.core$apply.invokeStatic(core.clj:659)
>       at clojure.core$load_libs.invokeStatic(core.clj:5925)
>       at clojure.core$load_libs.doInvoke(core.clj:5909)
>       at clojure.lang.RestFn.applyTo(RestFn.java:137)
>       at clojure.core$apply.invokeStatic(core.clj:659)
>       at clojure.core$require.invokeStatic(core.clj:5947)
>       at clojure.core$require.doInvoke(core.clj:5947)
>       at clojure.lang.RestFn.invoke(RestFn.java:2422)
>       at 
> puppetlabs.ring_middleware.core_test$eval2694$loading__9001__auto____2695.invoke(core_test.clj:1)
>       at 
> puppetlabs.ring_middleware.core_test$eval2694.invokeStatic(core_test.clj:1)
>       at puppetlabs.ring_middleware.core_test$eval2694.invoke(core_test.clj:1)
>       at clojure.lang.Compiler.eval(Compiler.java:7062)
>       at clojure.lang.Compiler.eval(Compiler.java:7051)
>       at clojure.lang.Compiler.load(Compiler.java:7514)
>       ... 9 more
> make[1]: *** [debian/rules:27: override_dh_auto_test] Error 123
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make: *** [debian/rules:12: build-indep] Error 2
> dpkg-buildpackage: error: debian/rules build-indep subprocess returned exit 
> status 2
> --------------------------------------------------------------------------------

Please find attached a patch similar to those submitted in #907765,
#880320, #880351. I intend to NMU this package in a few days, as for
other packages, even if that bug report is rather recent.


Cheers,
-- 
Cyril Brulebois (k...@debian.org)            <https://debamax.com/>
D-I release manager -- Release team member -- Freelance Consultant
diff -Nru puppetlabs-ring-middleware-clojure-1.0.0/debian/changelog puppetlabs-ring-middleware-clojure-1.0.0/debian/changelog
--- puppetlabs-ring-middleware-clojure-1.0.0/debian/changelog	2017-08-05 23:56:27.000000000 +0200
+++ puppetlabs-ring-middleware-clojure-1.0.0/debian/changelog	2018-12-29 02:32:58.000000000 +0100
@@ -1,3 +1,13 @@
+puppetlabs-ring-middleware-clojure (1.0.0-2) UNRELEASED; urgency=medium
+
+  * Fix FTBFS by running tests in a specific order. Instead of blindly
+    (reverse-)sorting the results of the find command and trusting it to
+    be right, encode a suitable sequence of tests (Closes: #917600). Also
+    make sure to error out when tests are added or removed, to make sure
+    this sequence get refreshed when needed.
+
+ -- Cyril Brulebois <k...@debian.org>  Sat, 29 Dec 2018 01:32:58 +0000
+
 puppetlabs-ring-middleware-clojure (1.0.0-1) unstable; urgency=medium
 
   * Initial release (Closes: #855738)
diff -Nru puppetlabs-ring-middleware-clojure-1.0.0/debian/rules puppetlabs-ring-middleware-clojure-1.0.0/debian/rules
--- puppetlabs-ring-middleware-clojure-1.0.0/debian/rules	2017-08-05 23:56:27.000000000 +0200
+++ puppetlabs-ring-middleware-clojure-1.0.0/debian/rules	2018-12-29 02:32:58.000000000 +0100
@@ -23,9 +23,21 @@
 	rm -f $(CURDIR)/$(PRODUCED_JAR)
 	rm -rf $(CURDIR)/doc/html
 
+# Tests can't run in a random order (#917600):
+override_dh_auto_test: ORDERED_TESTS=puppetlabs/ring_middleware/utils_test.clj puppetlabs/ring_middleware/testutils/common.clj puppetlabs/ring_middleware/core_test.clj
+override_dh_auto_test: EXPECTED=$(shell echo "$(ORDERED_TESTS)" | sed 's/ /\n/g' | sort | xargs)
+override_dh_auto_test: FOUND=$(shell cd test && find -name '*.clj' | sed 's,^[.]/,,' | sort | xargs)
 override_dh_auto_test:
-	(cd test && find . -name '*.clj' | \
-		xargs --verbose clojure -cp $(CURDIR)/$(PRODUCED_JAR):$(CLASSPATH):$(TEST_CLASSPATH))
+	# Make sure to detect when tests appear or disappear:
+	@if [ "$(FOUND)" != "$(EXPECTED)" ]; then \
+		echo "E: sanity check failed, available tests don't match known tests:"; \
+		echo "    - found:    $(FOUND)"; \
+		echo "    - expected: $(EXPECTED)"; \
+		echo "=> Please update ORDERED_TESTS in debian/rules accordingly"; \
+		exit 1; \
+	fi
+	# Run tests:
+	(cd test && clojure -cp $(CURDIR)/$(PRODUCED_JAR):$(CLASSPATH):$(TEST_CLASSPATH) $(ORDERED_TESTS))
 
 %.html:%.md
 	cat debian/header.html > $@

Attachment: signature.asc
Description: PGP signature

Reply via email to