summaryrefslogtreecommitdiff
path: root/test/tsort
diff options
context:
space:
mode:
Diffstat (limited to 'test/tsort')
-rwxr-xr-xtest/tsort137
1 files changed, 137 insertions, 0 deletions
diff --git a/test/tsort b/test/tsort
new file mode 100755
index 0000000..a4b4108
--- /dev/null
+++ b/test/tsort
@@ -0,0 +1,137 @@
+#!/bin/sh
+. ./Common
+
+###############################################################################
+
+fped "tsort: total order" <<EOF
+%tsort {
+ a b
+ a c
+ a d
+ b c
+ b d
+ c d
+}
+EOF
+expect <<EOF
+a
+b
+c
+d
+EOF
+
+#------------------------------------------------------------------------------
+
+fped "tsort: partial order change (1)" <<EOF
+%tsort {
+ a b
+ a c
+ a d
+ d b
+}
+EOF
+expect <<EOF
+a
+c
+d
+b
+EOF
+
+#------------------------------------------------------------------------------
+
+fped "tsort: partial order change (2)" <<EOF
+%tsort {
+ b c
+ c d
+ a b
+}
+EOF
+expect <<EOF
+a
+b
+c
+d
+EOF
+
+#------------------------------------------------------------------------------
+
+fped "tsort: old order differs from resolution order" <<EOF
+%tsort {
+ +a +b +c +d
+ a c
+ a b
+ a d
+}
+EOF
+expect <<EOF
+a
+b
+c
+d
+EOF
+
+#------------------------------------------------------------------------------
+
+fped "tsort: order change due to priority" <<EOF
+%tsort {
+ a b
+ a c 1
+ a d
+}
+EOF
+expect <<EOF
+a
+c
+b
+d
+EOF
+
+#------------------------------------------------------------------------------
+
+fped "tsort: priority accumulation without decay" <<EOF
+%tsort {
+ +a +b +c +d
+ a b 1
+ a d 1
+}
+EOF
+expect <<EOF
+a
+b
+d
+c
+EOF
+
+#------------------------------------------------------------------------------
+
+fped "tsort: priority accumulation with decay" <<EOF
+%tsort {
+ +a -b +c +d
+ a b 1
+ a d 1
+}
+EOF
+expect <<EOF
+a
+b
+c
+d
+EOF
+
+#------------------------------------------------------------------------------
+
+fped_fail "tsort: cycle" <<EOF
+%tsort {
+ a b
+ b a
+}
+EOF
+expect_sed '/Aborted/d' <<EOF
+cycle detected in partial order
+EOF
+
+# The "Aborted" can be reported with or without "(core dumped)", and sometimes
+# not at all. So we just remove it. We already know that tsort has detected
+# the problem.
+
+###############################################################################