mirror of
git://projects.qi-hardware.com/fped.git
synced 2024-12-23 03:15:31 +02:00
bc27b094af
the topological sort. "make test" or "make tests" invokes the regression tests, "make valgrind" runs them under valgrind's watchful eyes. - fped.c (usage, main): added option -T to force batch mode (for regression testing) - Makefile, test/Common: added regression test infrastructure - test/tsort: test cases for the topological sort - README: added pointer to test/tsort git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5943 99fdad57-331a-0410-800a-d7fa5415bdb3
156 lines
2.0 KiB
Bash
156 lines
2.0 KiB
Bash
#!/bin/sh
|
|
. ./Common
|
|
|
|
###############################################################################
|
|
|
|
fped "tsort: total order" <<EOF
|
|
package "_"
|
|
|
|
%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
|
|
package "_"
|
|
|
|
%tsort {
|
|
a b
|
|
a c
|
|
a d
|
|
d b
|
|
}
|
|
EOF
|
|
expect <<EOF
|
|
a
|
|
c
|
|
d
|
|
b
|
|
EOF
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
fped "tsort: partial order change (2)" <<EOF
|
|
package "_"
|
|
|
|
%tsort {
|
|
b c
|
|
c d
|
|
a b
|
|
}
|
|
EOF
|
|
expect <<EOF
|
|
a
|
|
b
|
|
c
|
|
d
|
|
EOF
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
fped "tsort: old order differs from resolution order" <<EOF
|
|
package "_"
|
|
|
|
%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
|
|
package "_"
|
|
|
|
%tsort {
|
|
a b
|
|
a c 1
|
|
a d
|
|
}
|
|
EOF
|
|
expect <<EOF
|
|
a
|
|
c
|
|
b
|
|
d
|
|
EOF
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
fped "tsort: priority accumulation without decay" <<EOF
|
|
package "_"
|
|
|
|
%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
|
|
package "_"
|
|
|
|
%tsort {
|
|
+a -b +c +d
|
|
a b 1
|
|
a d 1
|
|
}
|
|
EOF
|
|
expect <<EOF
|
|
a
|
|
b
|
|
c
|
|
d
|
|
EOF
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
fped_fail "tsort: cycle" <<EOF
|
|
package "_"
|
|
|
|
%tsort {
|
|
a b
|
|
b a
|
|
}
|
|
EOF
|
|
expect <<EOF
|
|
cycle detected in partial order
|
|
Aborted (core dumped)
|
|
EOF
|
|
|
|
# not entirely comfortable about the "Aborted (core dumped)". It's a system
|
|
# message (from the shell) that may get mangled. Also, since few people keep
|
|
# their cores these days, "(core dumped)" shouldn't really appear. Wonder why
|
|
# it does. strace agrees that __WCOREFLAG is set ...
|
|
|
|
###############################################################################
|