290 lines
9.6 KiB
Bash
Executable File
290 lines
9.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
if test -z "$1"
|
|
then
|
|
PROGRAM=./headlines
|
|
else
|
|
PROGRAM="$1"
|
|
fi
|
|
|
|
test -x "$PROGRAM" || { echo "Could not find executable $PROGRAM" && exit 1; }
|
|
|
|
run_test() {
|
|
echo Running test "$@"
|
|
"$@" < test.in | tee test.out || { echo "headlines returns FAILURE. Check test.in and test.out." && exit 1; }
|
|
diff -q test.out test.expected || { echo "Bad output from headlines FAILURE. Check test.in, test.out, and test.expected." && exit 1; }
|
|
echo PASSED.
|
|
}
|
|
|
|
cat > test.in <<EOF
|
|
* Introduction
|
|
This is just a test, you really don't need to worry about this text.
|
|
* Related Work
|
|
Here we compare with others
|
|
** The Good Ones
|
|
There are many others who are really good.
|
|
** The Bad Ones
|
|
There are also some bad ones. However there are no ugly ones
|
|
** The Ugly Ones
|
|
* Preliminaries
|
|
Here's a list of things we need to know:
|
|
* Pizza
|
|
* Pasta
|
|
* Gelato
|
|
* A New Way of Doing Things
|
|
** Mathematical Model
|
|
Model of what?
|
|
Model of what?
|
|
Model of what?
|
|
Model of what?
|
|
Model of what?
|
|
*** Dynamic model
|
|
*** Static model
|
|
*** Semi-dynamic model
|
|
** New pipeline
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
* Evaluation
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
** Subjects
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
** Workload
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
** Testbed
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
** Results
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
* Conclusion
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
EOF
|
|
cat > test.expected <<EOF
|
|
|
|
1) Introduction
|
|
This is just a test, you really don't need to worry about this text.
|
|
|
|
2) Related Work
|
|
Here we compare with others
|
|
|
|
2.1) The Good Ones
|
|
There are many others who are really good.
|
|
|
|
2.2) The Bad Ones
|
|
There are also some bad ones. However there are no ugly ones
|
|
|
|
2.3) The Ugly Ones
|
|
|
|
3) Preliminaries
|
|
Here's a list of things we need to know:
|
|
* Pizza
|
|
* Pasta
|
|
* Gelato
|
|
|
|
4) A New Way of Doing Things
|
|
|
|
4.1) Mathematical Model
|
|
Model of what?
|
|
Model of what?
|
|
Model of what?
|
|
Model of what?
|
|
Model of what?
|
|
|
|
4.1.1) Dynamic model
|
|
|
|
4.1.2) Static model
|
|
|
|
4.1.3) Semi-dynamic model
|
|
|
|
4.2) New pipeline
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
5) Evaluation
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
5.1) Subjects
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
5.2) Workload
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
5.3) Testbed
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
5.4) Results
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
|
|
6) Conclusion
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
|
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
culpa qui officia deserunt mollit anim id est laborum.
|
|
EOF
|
|
|
|
run_test "$PROGRAM"
|
|
|
|
cat > test.expected <<EOF
|
|
|
|
1) Introduction
|
|
|
|
2) Related Work
|
|
|
|
2.1) The Good Ones
|
|
|
|
2.2) The Bad Ones
|
|
|
|
2.3) The Ugly Ones
|
|
|
|
3) Preliminaries
|
|
|
|
4) A New Way of Doing Things
|
|
|
|
4.1) Mathematical Model
|
|
|
|
4.1.1) Dynamic model
|
|
|
|
4.1.2) Static model
|
|
|
|
4.1.3) Semi-dynamic model
|
|
|
|
4.2) New pipeline
|
|
|
|
5) Evaluation
|
|
|
|
5.1) Subjects
|
|
|
|
5.2) Workload
|
|
|
|
5.3) Testbed
|
|
|
|
5.4) Results
|
|
|
|
6) Conclusion
|
|
EOF
|
|
|
|
run_test "$PROGRAM" -o
|
|
|
|
cp -f test.in test.expected
|
|
|
|
run_test "$PROGRAM" -c '#'
|
|
|
|
cat > test.in <<EOF
|
|
### ciao
|
|
###### miao
|
|
##### bao
|
|
###### miao
|
|
##### bao
|
|
EOF
|
|
cat > test.expected <<EOF
|
|
|
|
0.0.1) ciao
|
|
|
|
0.0.1.0.0.1) miao
|
|
|
|
0.0.1.0.1) bao
|
|
|
|
0.0.1.0.1.1) miao
|
|
|
|
0.0.1.0.2) bao
|
|
EOF
|
|
run_test "$PROGRAM" -c '#'
|
|
run_test "$PROGRAM" -o -c '#'
|
|
|
|
rm -f test.in test.out test.expected
|
|
|
|
echo ALL TESTS PASSED.
|