# The commands in this file compile and run the test program for
# famus_snap with any of several widely used Unix shells.
# For shells in the sh family, such as bash:
#
#     $ . ./README_famus_snap.txt
#
# For csh or tcsh, try
#
#     % source ./README_famus_snap.txt
#
# Note that while compilation should succeed without complaint
# regardless of the file system used, the test program will run
# successfully only on file systems that support reflink, e.g.,
# BtrFS and XFS.

rm -f famus_snap_test famus_snap_test.bf famus_snap_test.snap1 famus_snap_test.snap2
echo ''
echo 'compile twice: once for diagnostics, once for debugging'
echo '' ; rm -f famus_snap_test ; gcc -std=c99 -pedantic -Wall -Wextra -O3 -o famus_snap_test famus_snap_test.c famus_snap.c
echo '- - - - -'
echo '' ; rm -f famus_snap_test ; gcc -std=c99 -pedantic -Wall -Wextra -g  -o famus_snap_test famus_snap_test.c famus_snap.c
echo ''
echo 'create backing file'
echo A > famus_snap_test.bf
echo ''
echo 'run test'
./famus_snap_test famus_snap_test.bf famus_snap_test.snap1 famus_snap_test.snap2
echo ''
echo 'check files (should be "b" then "A" then "b" again)'
echo ''
echo 'backing file:'
cat famus_snap_test.bf
echo ''
echo 'first snapshot (should be initial contents of backing file):'
cat famus_snap_test.snap1
echo ''
echo 'second snapshot (should be same as final state of backing file):'
cat famus_snap_test.snap2
echo ''
echo 'clean up: delete temporary files'
rm -f famus_snap_test famus_snap_test.bf famus_snap_test.snap1 famus_snap_test.snap2
echo ''

