Skip to content

Commit bd8401a

Browse files
committed
Add examples to ctest
1 parent 67ff1c7 commit bd8401a

File tree

3 files changed

+54
-6
lines changed

3 files changed

+54
-6
lines changed

example/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ swig_fortran_add_example(sort
1717
swig_fortran_add_example(vecstr
1818
flc_string flc_vector)
1919

20+
add_test(
21+
NAME examples
22+
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/run-examples.sh"
23+
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
24+
2025
##---------------------------------------------------------------------------##
2126
## end of common/CMakeLists.txt
2227
##---------------------------------------------------------------------------##

example/run-examples.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/sh
2+
3+
FAIL=0
4+
5+
function overall_result()
6+
{
7+
exit ${FAIL}
8+
}
9+
trap overall_result EXIT
10+
11+
function run_test()
12+
{
13+
local TESTNAME=$1
14+
local EXE=./${TESTNAME}.exe
15+
local OUT=${TESTNAME}.out
16+
printf "Run %s..." ${TESTNAME}
17+
${EXE} > ${OUT} 2>&1
18+
if [ $? -eq 0 ]; then
19+
echo "success!"
20+
else
21+
echo "FAILURE!"
22+
FAIL=1
23+
while read line
24+
do
25+
echo "${TESTNAME}: ${line}"
26+
done < ${OUT}
27+
fi
28+
}
29+
30+
run_test sort << EOF
31+
nope
32+
three
33+
10000000000000000
34+
20 ha ha
35+
20
36+
EOF
37+
38+
run_test vecstr << EOF
39+
This is the first string
40+
a second string
41+
and the third
42+
EOF
43+

example/sort.f90

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ function read_positive_int(desc) result(result_int)
5555
read(STDIN, "(a)", iostat=io_ierr) readstr
5656
if (io_ierr == IOSTAT_END) then
5757
! Error condition: ctrl-D during input
58-
write(STDOUT, *) "End of line"
59-
stop 0
58+
write(STDOUT, *) "User terminated"
59+
stop 1
6060
endif
6161

6262
result_int = stoi(readstr)
@@ -73,14 +73,14 @@ function read_positive_int(desc) result(result_int)
7373

7474
if (ierr == SWIG_OVERFLOWERROR) then
7575
! Error condition: integer doesn't fit in native integer
76-
write(0,*) "Your integer is too darn big!"
76+
write(STDOUT,*) "Your integer is too darn big!"
7777
else if (ierr == SWIG_VALUEERROR) then
7878
! Error condition: not an integer at all
79-
write(0,*) "That text you entered? It wasn't an integer."
79+
write(STDOUT,*) "That text you entered? It wasn't an integer."
8080
else
81-
write(0,*) "Unknown error", ierr
81+
write(STDOUT,*) "Unknown error", ierr
8282
end if
83-
write(0,*) "(Detailed error message: ", get_serr(), ")"
83+
write(STDOUT,*) "(Detailed error message: ", get_serr(), ")"
8484

8585
! Clear error flag so the next call to stoi succeeds
8686
ierr = 0

0 commit comments

Comments
 (0)