aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--NEWS1
-rw-r--r--t/emi_mandatory.t94
3 files changed, 101 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 7725f05..1e12dd9 100644
--- a/Makefile
+++ b/Makefile
@@ -25,3 +25,9 @@ dist:
submit: ci
mdvsys submit $(NAME)
+
+TESTS = $(wildcard t/*.t)
+.PHONY: $(TESTS)
+$(TESTS):
+ perl -Ilib $@
+check: $(TESTS)
diff --git a/NEWS b/NEWS
index b9cf3ac..d59bc1c 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@
- ulri, emi:
o move some code to library functions
o share the code loading the state from the file tree
+- add first test
0.6.25
- drop arcfour cipher usage (not enabled by default in latest openssh packages)
diff --git a/t/emi_mandatory.t b/t/emi_mandatory.t
new file mode 100644
index 0000000..e50d328
--- /dev/null
+++ b/t/emi_mandatory.t
@@ -0,0 +1,94 @@
+# Test ensuring packages are uploaded only if all mandatory arch have been built
+# or are excluded.
+
+use Test::Simple tests => 3;
+use experimental 'smartmatch';
+
+use Iurt::Emi;
+
+my $config = { mandatory_arch => ['i586', 'x86_64'] };
+my %pkg_tree = (
+ '20160113183431.nobody.valstar.23515' => {
+ 'target' => 'cauldron',
+ 'media' => {
+ 'core/release' => {
+ 'arch' => {
+ 'x86_64' => 1,
+ 'src' => 1
+ },
+ 'rpms' => [
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.x86_64.rpm',
+ '@922855:iurt-test-package-1.4.0-2.mga6.src.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.x86_64.rpm'
+ ],
+ 'path' => '/cauldron/core/release',
+ }
+ },
+ 'rpms' => [
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.x86_64.rpm',
+ '@922855:iurt-test-package-1.4.0-2.mga6.src.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.x86_64.rpm'
+ ]
+ },
+ '20160113183432.nobody.valstar.23515' => {
+ 'target' => 'cauldron',
+ 'media' => {
+ 'core/release' => {
+ 'arch' => {
+ 'i586' => 1,
+ 'x86_64' => 1,
+ 'src' => 1
+ },
+ 'rpms' => [
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.i586.rpm',
+ '@922855:iurt-test-package-1.4.0-2.mga6.src.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.i586.rpm',
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.x86_64.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.x86_64.rpm'
+ ],
+ 'path' => '/cauldron/core/release',
+ }
+ },
+ 'rpms' => [
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.i586.rpm',
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.x86_64.rpm',
+ '@922855:iurt-test-package-1.4.0-2.mga6.src.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.i586.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.x86_64.rpm'
+ ]
+ },
+ '20160113183433.nobody.valstar.23515' => {
+ 'target' => 'cauldron',
+ 'media' => {
+ 'core/release' => {
+ 'arch' => {
+ 'x86_64' => 1,
+ 'src' => 1
+ },
+ 'excluded_arch' => {
+ 'i586' => 1
+ },
+ 'rpms' => [
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.x86_64.rpm',
+ '@922855:iurt-test-package-1.4.0-2.mga6.src.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.x86_64.rpm'
+ ],
+ 'path' => '/cauldron/core/release',
+ }
+ },
+ 'rpms' => [
+ 'iurt-test-package-debuginfo-1.4.0-2.mga6.x86_64.rpm',
+ '@922855:iurt-test-package-1.4.0-2.mga6.src.rpm',
+ 'iurt-test-package-1.4.0-2.mga6.x86_64.rpm'
+ ]
+ },
+);
+
+my %targets = find_prefixes_ready_to_upload($config, %pkg_tree);
+
+# 20160113183431.nobody.valstar.23515 is not ready to upload, mandatory arch i586 is missing
+ok(!('20160113183431.nobody.valstar.23515' ~~ @{$targets{'cauldron'}{'core/release'}{'to_upload'}}));
+# 20160113183432.nobody.valstar.23515 is ready to upload, all arches are present
+ok('20160113183432.nobody.valstar.23515' ~~ @{$targets{'cauldron'}{'core/release'}{'to_upload'}});
+# 20160113183433.nobody.valstar.23515 is ready to upload, i586 is excluded
+ok('20160113183433.nobody.valstar.23515' ~~ @{$targets{'cauldron'}{'core/release'}{'to_upload'}});