Blame test/Makefile.am

Packit dd8086
#   Copyright (C) 2003-2006, 2008-2013, 2017 Rocky Bernstein <rocky@gnu.org>
Packit dd8086
#
Packit dd8086
#   This program is free software: you can redistribute it and/or modify
Packit dd8086
#   it under the terms of the GNU General Public License as published by
Packit dd8086
#   the Free Software Foundation, either version 3 of the License, or
Packit dd8086
#   (at your option) any later version.
Packit dd8086
#
Packit dd8086
#   This program is distributed in the hope that it will be useful,
Packit dd8086
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit dd8086
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit dd8086
#   GNU General Public License for more details.
Packit dd8086
#
Packit dd8086
#   You should have received a copy of the GNU General Public License
Packit dd8086
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit dd8086
Packit dd8086
####################################################
Packit dd8086
# Things for regression testing
Packit dd8086
####################################################
Packit dd8086
#
Packit dd8086
#
Packit dd8086
.PHONY: test check-short check-iso_read_large check-iso-read-terse \
Packit dd8086
        make-executable clean-local-check check-leaks
Packit dd8086
Packit dd8086
SUBDIRS = data driver
Packit dd8086
Packit dd8086
hack = check_sizeof testassert testgetdevices testischar \
Packit dd8086
       testisocd testisocd2 testisocd_joliet testiso9660 \
Packit dd8086
       testisorr test_lib_driver_util testudf \
Packit dd8086
       testpregap
Packit dd8086
Packit dd8086
DATA_DIR       = @abs_top_srcdir@/test/data
Packit dd8086
Packit dd8086
AM_CPPFLAGS = $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS) -DDATA_DIR=\"$(DATA_DIR)\"
Packit dd8086
Packit dd8086
check_sizeof_LDADD    = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testassert_LDADD      = $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testgetdevices_LDADD  = $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testischar_LDADD      = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testiso9660_LDADD     = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
Packit dd8086
testisocd_LDADD       = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testisocd2_LDADD      = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testisocd_joliet_LDADD= $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
testisorr_LDADD       = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
Packit dd8086
testudf_LDADD         = $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
Packit dd8086
test_lib_driver_util_LDADD    = $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
Packit dd8086
testpregap_LDADD    = $(LIBCDIO_LIBS) $(LTLIBICONV)
Packit dd8086
Packit dd8086
check_SCRIPTS = check_nrg.sh  check_cue.sh  check_cd_read.sh check_udf.sh \
Packit dd8086
                check_iso.sh  check_bad_iso.sh \
Packit dd8086
	        check_fuzzyiso.sh check_opts.sh \
Packit dd8086
                check_iso_read.sh check_cdtext.sh
Packit dd8086
Packit dd8086
check_udf.sh: @abs_top_builddir@/example/extract$(EXEEXT)
Packit dd8086
Packit dd8086
@abs_top_builddir@/example/extract$(EXEEXT):
Packit dd8086
	$(MAKE) -C @abs_top_builddir@/example extract$(EXEEXT)
Packit dd8086
Packit dd8086
check_PROGRAMS = $(hack)
Packit dd8086
Packit dd8086
check_DATA = vcd_demo.right vcd_demo_vcdinfo.right \
Packit dd8086
	     videocd.right \
Packit dd8086
	     cdda.right \
Packit dd8086
	     isofs-m1.right isofs-m1-no-rr.right isofs-m1-test2.right \
Packit dd8086
	     check_opts0.right check_opts1.right check_opts2.right \
Packit dd8086
             check_opts3.right check_opts4.right check_opts5.right \
Packit dd8086
             check_opts6.right check_opts7.right \
Packit dd8086
	     isofs-m1-read.right cdda-read.right \
Packit dd8086
	     copying.right copying-rr.right \
Packit dd8086
	     joliet.right joliet-nojoliet.right \
Packit dd8086
	     malformed.right malformed2.right \
Packit dd8086
	     copying.gpl copying-rr.gpl copying-rr-mingw.right \
Packit dd8086
       cdtext.right cdtext-libburnia.right
Packit dd8086
Packit dd8086
EXTRA_DIST = $(check_SCRIPTS) $(check_DATA) \
Packit dd8086
	check_common_fn check_cue.sh.in check_nrg.sh.in \
Packit dd8086
	check_legal.regex \
Packit dd8086
	check_iso.sh.in \
Packit dd8086
	check_iso_read.sh.in
Packit dd8086
Packit dd8086
TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
Packit dd8086
XFAIL_TESTS = testassert
Packit dd8086
Packit dd8086
MOSTLYCLEANFILES = \
Packit dd8086
	core core.* *.dump cdda-orig.wav cdda-try.wav *.raw \
Packit dd8086
	*file?s-read.txt exampleIso*.iso*
Packit dd8086
Packit dd8086
#: run regression tests. "test" is the same thing as "check"
Packit dd8086
test: check-am
Packit dd8086
Packit dd8086
#: Run all tests without bloated output
Packit dd8086
check-short:
Packit dd8086
	@$(MAKE) check 2>&1  | ruby @abs_top_srcdir@/make-check-filter.rb
Packit dd8086
Packit dd8086
#: Run 5GB ISO 9660 read test
Packit dd8086
# Stripped down greatly from automakes check-TESTS
Packit dd8086
check-iso-read-large:
Packit dd8086
	@if ./check_iso_read.sh 5000; then \
Packit dd8086
	  echo test of 5M iso_read succeeded; \
Packit dd8086
	elif test $? -ne 77; then \
Packit dd8086
	  echo iso_read large file test failed; \
Packit dd8086
	else \
Packit dd8086
	  echo iso_read large file test skipped; \
Packit dd8086
	fi
Packit dd8086
Packit dd8086
#: Run 5GB ISO 9660 read test without some of the bloated output
Packit dd8086
check-iso-read-large-terse:
Packit dd8086
	@$(MAKE) check-iso-read-large 2>&1  | ruby @abs_top_srcdir@/make-check-filter.rb
Packit dd8086
Packit dd8086
# This is a really bad hack to make sure check_nrg and check_cue.sh
Packit dd8086
# are executable. Automake will remake check_nrg.sh and check_cue.sh
Packit dd8086
# but not run the configure default commands for them to make sure
Packit dd8086
# they are executable. You know it would be nice one could just set
Packit dd8086
# permissions and mode when it makes the files. I'm sure there's some
Packit dd8086
# cleaner a way to do this, but frankly I've wasted far too much of my
Packit dd8086
# life the crappy automess system that I've really lost interest in
Packit dd8086
# learning any more of this awful system than I need to.
Packit dd8086
check-am:	make-executable
Packit dd8086
make-executable: check_nrg.sh check_cue.sh
Packit dd8086
	@chmod +x *.sh
Packit dd8086
	@if test ! -f cdda.bin -a ! -s cdda.bin ; then \
Packit dd8086
		test -L cdda.bin && $(RM) cdda.bin ; \
Packit dd8086
		$(LN_S) $(abs_top_srcdir)/test/data/cdda.bin cdda.bin ; \
Packit dd8086
	fi
Packit dd8086
	@if test ! -f @abs_top_builddir@/test/data/isofs-m1.bin -a ! -s @abs_top_builddir@/test/data/isofs-m1.bin ; then \
Packit dd8086
		test -L isofs-m1.bin && $(RM) isofs-m1.bin ; \
Packit dd8086
		$(LN_S) $(abs_top_srcdir)/test/data/isofs-m1.bin @abs_top_builddir@/test/data/isofs-m1.bin ;  \
Packit dd8086
	fi
Packit dd8086
	@if test ! -f @abs_top_builddir@/test/data/isofs-m1.cue -a ! -s isofs-m1.cue -a ! -f @abs_top_builddir@/test/data/isofs-m1.cue; then \
Packit dd8086
		test -L isofs-m1.bin && $(RM) isofs-m1.cue ; \
Packit dd8086
		$(LN_S) $(abs_top_srcdir)/test/data/isofs-m1.cue @abs_top_builddir@/test/data/isofs-m1.cue ;  \
Packit dd8086
	fi
Packit dd8086
Packit dd8086
clean-local: clean-local-check
Packit dd8086
clean-local-check:
Packit dd8086
	-rm -rf exampleIso*.iso.prep *.log *.trs *.orig *.rej
Packit dd8086
Packit dd8086
#: run valgrind on C programs
Packit dd8086
check-leaks: $(check_PROGRAMS)
Packit dd8086
	for p in $(check_PROGRAMS); do \
Packit dd8086
	   valgrind ./$$p; \
Packit dd8086
        done