summaryrefslogtreecommitdiff
path: root/eclass/tests/qmail.sh
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/tests/qmail.sh')
-rwxr-xr-xeclass/tests/qmail.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/eclass/tests/qmail.sh b/eclass/tests/qmail.sh
new file mode 100755
index 000000000000..3520ed2a9d5b
--- /dev/null
+++ b/eclass/tests/qmail.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+# Copyright 2020-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+source tests-common.sh
+
+inherit qmail
+
+# some numbers are blocked because they are to small even if prime
+test_low_numbers() {
+ tbegin "low numbers"
+
+ for i in $(seq 0 6); do
+ if is_prime ${i}; then
+ return tend 1 "${i} badly accepted"
+ fi
+ done
+
+ tend 0
+}
+
+# test a given number for being prime
+check_prime_number() {
+ # use factor from coreutils to count the factors
+ if [[ $(factor $1 | cut -d: -f2 | wc -w) == 1 ]]; then
+ return $(is_prime $1)
+ else
+ return $(is_prime $1 && false || true)
+ fi
+}
+
+test_primes() {
+ tbegin "factorizations from ${1} to ${2}"
+
+ for i in $(seq ${1:?} ${2:?}); do
+ if ! check_prime_number $i; then
+ tend 1 "${i} returned bad factorization"
+ return 1
+ fi
+ done
+
+ tend 0
+}
+
+test_low_numbers
+test_primes 7 99
+for i in $(seq 100 100 1000); do
+ test_primes $i $((i + 99))
+done
+
+texit