From ef076da573927c9203382e98a438ff0a03032573 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:13:18 +1100 Subject: [PATCH 01/16] (test-vector) fix issue in test program, fixes #50 --- test/C/test-vector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/C/test-vector.c b/test/C/test-vector.c index 0b459df..1b33ec2 100644 --- a/test/C/test-vector.c +++ b/test/C/test-vector.c @@ -32,7 +32,7 @@ main () giza_set_window (0., 10., 0., 10.); giza_box ("BCNT", 0., 0, "BCTN", 0., 0); - int n = 2, m = 2; + const int n = 2, m = 2; float hori[m][n], vert[m][n]; float scale = 1.; float affine[6]; @@ -52,7 +52,7 @@ main () affine[4] = 0.; affine[5] = 0.; - giza_vector_float (n, m, hori, vert, 0, 1, 0, 1, scale, 0, affine, 1000.); + giza_vector_float (n, m, (float *) &hori, (float *) &vert, 0, 1, 0, 1, scale, 0, affine, 1000.); giza_close_device (); } From ebcec7dedbb06d6c2555fc2076c5620ab3e98aca Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:14:28 +1100 Subject: [PATCH 02/16] use make check to perform automated series of unit tests --- config.h.in | 2 +- test/C/Makefile.am | 2 +- test/C/Makefile.in | 591 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 580 insertions(+), 15 deletions(-) diff --git a/config.h.in b/config.h.in index 6e3212b..113ebd8 100644 --- a/config.h.in +++ b/config.h.in @@ -54,7 +54,7 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* Define to 1 if all of the C90 standard headers exist (not just the ones +/* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS diff --git a/test/C/Makefile.am b/test/C/Makefile.am index cab04cc..6dc4463 100644 --- a/test/C/Makefile.am +++ b/test/C/Makefile.am @@ -13,5 +13,5 @@ ctests = test-arrow test-band test-box test-cairo-xw test-change-page \ test-qtext test-rectangle test-set-line-width \ test-svg test-vector test-window test-XOpenDisplay # test-contour test-render -#TESTS = $(ctests) +TESTS = $(ctests) check_PROGRAMS = $(ctests) diff --git a/test/C/Makefile.in b/test/C/Makefile.in index 790b890..16369e2 100644 --- a/test/C/Makefile.in +++ b/test/C/Makefile.in @@ -89,6 +89,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +TESTS = $(am__EXEEXT_1) check_PROGRAMS = $(am__EXEEXT_1) subdir = test/C ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -298,7 +299,218 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/build/depcomp +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + $$am__collect_skipped_logs \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(IGNORE_SKIPPED_LOGS)'; then \ + am__collect_skipped_logs='--collect-skipped-logs no'; \ +else \ + am__collect_skipped_logs=''; \ +fi; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/build/depcomp \ + $(top_srcdir)/build/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -457,7 +669,7 @@ ctests = test-arrow test-band test-box test-cairo-xw test-change-page \ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -703,6 +915,355 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + elif test -n "$$redo_logs"; then \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + output_system_information () \ + { \ + echo; \ + { uname -a | $(AWK) '{ \ + printf "System information (uname -a):"; \ + for (i = 1; i < NF; ++i) \ + { \ + if (i != 2) \ + printf " %s", $$i; \ + } \ + printf "\n"; \ +}'; } 2>&1; \ + if test -r /etc/os-release; then \ + echo "Distribution information (/etc/os-release):"; \ + sed 8q /etc/os-release; \ + elif test -r /etc/issue; then \ + echo "Distribution information (/etc/issue):"; \ + cat /etc/issue; \ + fi; \ + }; \ + please_report () \ + { \ +echo "Some test(s) failed. Please report this to $(PACKAGE_BUGREPORT),"; \ +echo "together with the test-suite.log file (gzipped) and your system"; \ +echo "information. Thanks."; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + output_system_information; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG) for debugging.$${std}";\ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + please_report | sed -e "s/^/$${col}/" -e s/'$$'/"$${std}"/; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: $(check_PROGRAMS) + @$(am__rm_f) $(RECHECK_LOGS) + @$(am__rm_f) $(RECHECK_LOGS:.log=.trs) + @$(am__rm_f) $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @$(am__rm_f) $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test-arrow.log: test-arrow$(EXEEXT) + @p='test-arrow$(EXEEXT)'; \ + b='test-arrow'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-band.log: test-band$(EXEEXT) + @p='test-band$(EXEEXT)'; \ + b='test-band'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-box.log: test-box$(EXEEXT) + @p='test-box$(EXEEXT)'; \ + b='test-box'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-cairo-xw.log: test-cairo-xw$(EXEEXT) + @p='test-cairo-xw$(EXEEXT)'; \ + b='test-cairo-xw'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-change-page.log: test-change-page$(EXEEXT) + @p='test-change-page$(EXEEXT)'; \ + b='test-change-page'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-circle.log: test-circle$(EXEEXT) + @p='test-circle$(EXEEXT)'; \ + b='test-circle'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-colour-index.log: test-colour-index$(EXEEXT) + @p='test-colour-index$(EXEEXT)'; \ + b='test-colour-index'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-environment.log: test-environment$(EXEEXT) + @p='test-environment$(EXEEXT)'; \ + b='test-environment'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-error-bars.log: test-error-bars$(EXEEXT) + @p='test-error-bars$(EXEEXT)'; \ + b='test-error-bars'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-format-number.log: test-format-number$(EXEEXT) + @p='test-format-number$(EXEEXT)'; \ + b='test-format-number'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-giza-xw.log: test-giza-xw$(EXEEXT) + @p='test-giza-xw$(EXEEXT)'; \ + b='test-giza-xw'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-line-cap.log: test-line-cap$(EXEEXT) + @p='test-line-cap$(EXEEXT)'; \ + b='test-line-cap'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-line-style.log: test-line-style$(EXEEXT) + @p='test-line-style$(EXEEXT)'; \ + b='test-line-style'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-openclose.log: test-openclose$(EXEEXT) + @p='test-openclose$(EXEEXT)'; \ + b='test-openclose'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-pdf.log: test-pdf$(EXEEXT) + @p='test-pdf$(EXEEXT)'; \ + b='test-pdf'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-png.log: test-png$(EXEEXT) + @p='test-png$(EXEEXT)'; \ + b='test-png'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-points.log: test-points$(EXEEXT) + @p='test-points$(EXEEXT)'; \ + b='test-points'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-qtext.log: test-qtext$(EXEEXT) + @p='test-qtext$(EXEEXT)'; \ + b='test-qtext'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-rectangle.log: test-rectangle$(EXEEXT) + @p='test-rectangle$(EXEEXT)'; \ + b='test-rectangle'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-set-line-width.log: test-set-line-width$(EXEEXT) + @p='test-set-line-width$(EXEEXT)'; \ + b='test-set-line-width'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-svg.log: test-svg$(EXEEXT) + @p='test-svg$(EXEEXT)'; \ + b='test-svg'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-vector.log: test-vector$(EXEEXT) + @p='test-vector$(EXEEXT)'; \ + b='test-vector'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-window.log: test-window$(EXEEXT) + @p='test-window$(EXEEXT)'; \ + b='test-window'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-XOpenDisplay.log: test-XOpenDisplay$(EXEEXT) + @p='test-XOpenDisplay$(EXEEXT)'; \ + b='test-XOpenDisplay'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -738,6 +1299,7 @@ distdir-am: $(DISTFILES) done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: @@ -761,6 +1323,9 @@ install-strip: "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: + -$(am__rm_f) $(TEST_LOGS) + -$(am__rm_f) $(TEST_LOGS:.log=.trs) + -$(am__rm_f) $(TEST_SUITE_LOG) clean-generic: -$(am__rm_f) $(CLEANFILES) @@ -891,19 +1456,19 @@ uninstall-am: .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ + check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am .PRECIOUS: Makefile From 5bb26494928489e9ec2f935aba835a3999faced0 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:19:10 +1100 Subject: [PATCH 03/16] (testsuite) ensure all tests return 0 on success --- test/C/test-XOpenDisplay.c | 2 +- test/C/test-giza-xw.c | 13 +++++++++---- test/C/test-openclose.c | 12 +++++++++--- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/test/C/test-XOpenDisplay.c b/test/C/test-XOpenDisplay.c index 5d8e0fb..551373e 100644 --- a/test/C/test-XOpenDisplay.c +++ b/test/C/test-XOpenDisplay.c @@ -30,5 +30,5 @@ int main () display = XOpenDisplay(NULL); XCloseDisplay(display); - return 1; + return 0; } diff --git a/test/C/test-giza-xw.c b/test/C/test-giza-xw.c index 716adf6..7521ec3 100644 --- a/test/C/test-giza-xw.c +++ b/test/C/test-giza-xw.c @@ -24,14 +24,19 @@ #include int main() { - int ierr; - ierr = giza_open_device("/xw","test"); + int id; + id = giza_open_device("/xw","test"); /*giza_stop_prompting();*/ giza_close_device(); - ierr = giza_open_device("/xw","test"); + id = giza_open_device("/xw","test"); /*giza_stop_prompting();*/ giza_close_device(); - return ierr; + /* open_device should return a positive integer */ + if (id <= 0) { + return 1; + } else { + return 0; + } } diff --git a/test/C/test-openclose.c b/test/C/test-openclose.c index f4eb183..4b9f4fa 100644 --- a/test/C/test-openclose.c +++ b/test/C/test-openclose.c @@ -25,13 +25,19 @@ int main () { - int ierr; - ierr = giza_open_device("?","test"); + int id; + id = giza_open_device("?","test"); giza_stop_prompting(); giza_close_device(); - ierr = giza_open_device("/xw","test"); + id = giza_open_device("/xw","test"); giza_stop_prompting(); giza_close_device(); + /* open_device should return a positive integer */ + if (id <= 0) { + return 1; + } else { + return 0; + } } From 76d06ff0c00baeaadd094eaaae60f4f7dd3ab857 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:19:44 +1100 Subject: [PATCH 04/16] (testsuite) added checks that files are successfully created for png, svg and pdf drivers --- test/C/test-pdf.c | 28 +++++++++++++++++++++++++--- test/C/test-png.c | 35 ++++++++++++++++++++++++++++++++--- test/C/test-svg.c | 35 ++++++++++++++++++++++++++++++++--- 3 files changed, 89 insertions(+), 9 deletions(-) diff --git a/test/C/test-pdf.c b/test/C/test-pdf.c index 64e35d6..913c3f7 100644 --- a/test/C/test-pdf.c +++ b/test/C/test-pdf.c @@ -23,11 +23,14 @@ */ #include #include "math.h" +#include +#include static double sinx(double *x); +int check_pdf_file(void); int main() { - int ierr, i; - ierr = giza_open_device("/pdf","test"); + int id, i; + id = giza_open_device("/pdf","test"); for (i=1;i<=10;i++) { giza_set_environment(0.,1.,-1.,1.,0,0); giza_label("x","y","title"); @@ -35,9 +38,28 @@ int main() { } giza_close_device(); - return ierr; + /* open_device should return a positive integer */ + if (id <= 0 || !check_pdf_file()) { + return 1; + } else { + return 0; + } } double sinx(double *x) { return sin(6.28*(*x)); } + +/* check if the corresponding files exist */ +int check_pdf_file() { + char filename[20]; + snprintf(filename, sizeof(filename), "test.pdf"); + /* Check if the file exists */ + if (access(filename, F_OK) == -1) { + fprintf(stderr, "Error: Required file %s does not exist.\n", filename); + return 0; /* Return 0 if file is missing */ + } else { + fprintf(stdout, "File %s exists -> OK\n", filename); + } + return 1; /* Return 1 if file exists */ +} \ No newline at end of file diff --git a/test/C/test-png.c b/test/C/test-png.c index 92c5f8c..45c41e0 100644 --- a/test/C/test-png.c +++ b/test/C/test-png.c @@ -23,11 +23,16 @@ */ #include #include "math.h" +#include +#include +#include + static double sinx(double *x); +static int check_png_files(int num_files); int main() { - int ierr, i; - ierr = giza_open_device("/png","test"); + int id, i; + id = giza_open_device("/png","test"); for (i=1;i<=10;i++) { giza_set_environment(0.,1.,-1.,1.,0,0); giza_label("x","y","title"); @@ -35,9 +40,33 @@ int main() { } giza_close_device(); - return ierr; + /* open_device should return a positive integer */ + if (id <= 0 || !check_png_files(10)) { + return 1; + } else { + return 0; + } } double sinx(double *x) { return sin(6.28*(*x)); } + +/* check if the corresponding files exist */ +int check_png_files(int num_files) { + char filename[20]; + + for (int i = 0; i < num_files; i++) { + /* Create the filename in the format test_0000.png, test_0001.png, etc. */ + snprintf(filename, sizeof(filename), "test_%04d.png", i); + + /* Check if the file exists */ + if (access(filename, F_OK) == -1) { + fprintf(stderr, "Error: Required file %s does not exist.\n", filename); + return 0; /* Return 0 if any file is missing */ + } else { + fprintf(stdout, "File %s exists -> OK\n", filename); + } + } + return 1; /* Return 1 if all files exist */ +} diff --git a/test/C/test-svg.c b/test/C/test-svg.c index 75f17e2..016de68 100644 --- a/test/C/test-svg.c +++ b/test/C/test-svg.c @@ -23,11 +23,16 @@ */ #include #include "math.h" +#include +#include +#include + static double sinx(double *x); +static int check_svg_files(int num_files); int main() { - int ierr, i; - ierr = giza_open_device("/svg","test"); + int id, i; + id = giza_open_device("/svg","test"); for (i=1;i<=10;i++) { giza_set_environment(0.,1.,-1.,1.,0,0); giza_label("x","y","title"); @@ -35,9 +40,33 @@ int main() { } giza_close_device(); - return ierr; + /* open_device should return a positive integer */ + if (id <= 0 || !check_svg_files(10)) { + return 1; + } else { + return 0; + } } double sinx(double *x) { return sin(6.28*(*x)); } + +/* check if the corresponding files exist */ +int check_svg_files(int num_files) { + char filename[20]; + + for (int i = 0; i < num_files; i++) { + /* Create the filename in the format test_0000.svg, test_0001.svg, etc. */ + snprintf(filename, sizeof(filename), "test_%04d.svg", i); + + /* Check if the file exists */ + if (access(filename, F_OK) == -1) { + fprintf(stderr, "Error: Required file %s does not exist.\n", filename); + return 0; /* Return 0 if any file is missing */ + } else { + fprintf(stdout, "File %s exists -> OK\n", filename); + } + } + return 1; /* Return 1 if all files exist */ +} \ No newline at end of file From c334fae8585b62f2372ad3e0ba9d6c701959b6bd Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:30:19 +1100 Subject: [PATCH 05/16] (testsuite) remove test-band.c from the automated tests as requires mouse clicks --- test/C/Makefile.am | 2 +- test/C/Makefile.in | 64 ++++++++++++++++------------------------------ 2 files changed, 23 insertions(+), 43 deletions(-) diff --git a/test/C/Makefile.am b/test/C/Makefile.am index 6dc4463..12583d6 100644 --- a/test/C/Makefile.am +++ b/test/C/Makefile.am @@ -5,7 +5,7 @@ LDADD = ../../src/libgiza.la CLEANFILES = *.png *.pdf *.svg -ctests = test-arrow test-band test-box test-cairo-xw test-change-page \ +ctests = test-arrow test-box test-cairo-xw test-change-page \ test-circle test-colour-index \ test-environment \ test-error-bars test-format-number test-giza-xw test-line-cap \ diff --git a/test/C/Makefile.in b/test/C/Makefile.in index 16369e2..7e971da 100644 --- a/test/C/Makefile.in +++ b/test/C/Makefile.in @@ -104,17 +104,16 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -am__EXEEXT_1 = test-arrow$(EXEEXT) test-band$(EXEEXT) \ - test-box$(EXEEXT) test-cairo-xw$(EXEEXT) \ - test-change-page$(EXEEXT) test-circle$(EXEEXT) \ - test-colour-index$(EXEEXT) test-environment$(EXEEXT) \ - test-error-bars$(EXEEXT) test-format-number$(EXEEXT) \ - test-giza-xw$(EXEEXT) test-line-cap$(EXEEXT) \ - test-line-style$(EXEEXT) test-openclose$(EXEEXT) \ - test-pdf$(EXEEXT) test-png$(EXEEXT) test-points$(EXEEXT) \ - test-qtext$(EXEEXT) test-rectangle$(EXEEXT) \ - test-set-line-width$(EXEEXT) test-svg$(EXEEXT) \ - test-vector$(EXEEXT) test-window$(EXEEXT) \ +am__EXEEXT_1 = test-arrow$(EXEEXT) test-box$(EXEEXT) \ + test-cairo-xw$(EXEEXT) test-change-page$(EXEEXT) \ + test-circle$(EXEEXT) test-colour-index$(EXEEXT) \ + test-environment$(EXEEXT) test-error-bars$(EXEEXT) \ + test-format-number$(EXEEXT) test-giza-xw$(EXEEXT) \ + test-line-cap$(EXEEXT) test-line-style$(EXEEXT) \ + test-openclose$(EXEEXT) test-pdf$(EXEEXT) test-png$(EXEEXT) \ + test-points$(EXEEXT) test-qtext$(EXEEXT) \ + test-rectangle$(EXEEXT) test-set-line-width$(EXEEXT) \ + test-svg$(EXEEXT) test-vector$(EXEEXT) test-window$(EXEEXT) \ test-XOpenDisplay$(EXEEXT) test_XOpenDisplay_SOURCES = test-XOpenDisplay.c test_XOpenDisplay_OBJECTS = test-XOpenDisplay.$(OBJEXT) @@ -128,10 +127,6 @@ test_arrow_SOURCES = test-arrow.c test_arrow_OBJECTS = test-arrow.$(OBJEXT) test_arrow_LDADD = $(LDADD) test_arrow_DEPENDENCIES = ../../src/libgiza.la -test_band_SOURCES = test-band.c -test_band_OBJECTS = test-band.$(OBJEXT) -test_band_LDADD = $(LDADD) -test_band_DEPENDENCIES = ../../src/libgiza.la test_box_SOURCES = test-box.c test_box_OBJECTS = test-box.$(OBJEXT) test_box_LDADD = $(LDADD) @@ -232,10 +227,9 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/test-XOpenDisplay.Po \ - ./$(DEPDIR)/test-arrow.Po ./$(DEPDIR)/test-band.Po \ - ./$(DEPDIR)/test-box.Po ./$(DEPDIR)/test-cairo-xw.Po \ - ./$(DEPDIR)/test-change-page.Po ./$(DEPDIR)/test-circle.Po \ - ./$(DEPDIR)/test-colour-index.Po \ + ./$(DEPDIR)/test-arrow.Po ./$(DEPDIR)/test-box.Po \ + ./$(DEPDIR)/test-cairo-xw.Po ./$(DEPDIR)/test-change-page.Po \ + ./$(DEPDIR)/test-circle.Po ./$(DEPDIR)/test-colour-index.Po \ ./$(DEPDIR)/test-environment.Po ./$(DEPDIR)/test-error-bars.Po \ ./$(DEPDIR)/test-format-number.Po ./$(DEPDIR)/test-giza-xw.Po \ ./$(DEPDIR)/test-line-cap.Po ./$(DEPDIR)/test-line-style.Po \ @@ -263,14 +257,14 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = test-XOpenDisplay.c test-arrow.c test-band.c test-box.c \ - test-cairo-xw.c test-change-page.c test-circle.c \ - test-colour-index.c test-environment.c test-error-bars.c \ - test-format-number.c test-giza-xw.c test-line-cap.c \ - test-line-style.c test-openclose.c test-pdf.c test-png.c \ - test-points.c test-qtext.c test-rectangle.c \ - test-set-line-width.c test-svg.c test-vector.c test-window.c -DIST_SOURCES = test-XOpenDisplay.c test-arrow.c test-band.c test-box.c \ +SOURCES = test-XOpenDisplay.c test-arrow.c test-box.c test-cairo-xw.c \ + test-change-page.c test-circle.c test-colour-index.c \ + test-environment.c test-error-bars.c test-format-number.c \ + test-giza-xw.c test-line-cap.c test-line-style.c \ + test-openclose.c test-pdf.c test-png.c test-points.c \ + test-qtext.c test-rectangle.c test-set-line-width.c test-svg.c \ + test-vector.c test-window.c +DIST_SOURCES = test-XOpenDisplay.c test-arrow.c test-box.c \ test-cairo-xw.c test-change-page.c test-circle.c \ test-colour-index.c test-environment.c test-error-bars.c \ test-format-number.c test-giza-xw.c test-line-cap.c \ @@ -658,7 +652,7 @@ AM_CPPFLAGS = -I../../src AM_LDFLAGS = -no-install -lm -lX11 LDADD = ../../src/libgiza.la CLEANFILES = *.png *.pdf *.svg -ctests = test-arrow test-band test-box test-cairo-xw test-change-page \ +ctests = test-arrow test-box test-cairo-xw test-change-page \ test-circle test-colour-index \ test-environment \ test-error-bars test-format-number test-giza-xw test-line-cap \ @@ -712,10 +706,6 @@ test-arrow$(EXEEXT): $(test_arrow_OBJECTS) $(test_arrow_DEPENDENCIES) $(EXTRA_te @rm -f test-arrow$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_arrow_OBJECTS) $(test_arrow_LDADD) $(LIBS) -test-band$(EXEEXT): $(test_band_OBJECTS) $(test_band_DEPENDENCIES) $(EXTRA_test_band_DEPENDENCIES) - @rm -f test-band$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(test_band_OBJECTS) $(test_band_LDADD) $(LIBS) - test-box$(EXEEXT): $(test_box_OBJECTS) $(test_box_DEPENDENCIES) $(EXTRA_test_box_DEPENDENCIES) @rm -f test-box$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_box_OBJECTS) $(test_box_LDADD) $(LIBS) @@ -808,7 +798,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-XOpenDisplay.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-arrow.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-band.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-box.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-cairo-xw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-change-page.Po@am__quote@ # am--include-marker @@ -1089,13 +1078,6 @@ test-arrow.log: test-arrow$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -test-band.log: test-band$(EXEEXT) - @p='test-band$(EXEEXT)'; \ - b='test-band'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) test-box.log: test-box$(EXEEXT) @p='test-box$(EXEEXT)'; \ b='test-box'; \ @@ -1345,7 +1327,6 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ distclean: distclean-am -rm -f ./$(DEPDIR)/test-XOpenDisplay.Po -rm -f ./$(DEPDIR)/test-arrow.Po - -rm -f ./$(DEPDIR)/test-band.Po -rm -f ./$(DEPDIR)/test-box.Po -rm -f ./$(DEPDIR)/test-cairo-xw.Po -rm -f ./$(DEPDIR)/test-change-page.Po @@ -1414,7 +1395,6 @@ installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/test-XOpenDisplay.Po -rm -f ./$(DEPDIR)/test-arrow.Po - -rm -f ./$(DEPDIR)/test-band.Po -rm -f ./$(DEPDIR)/test-box.Po -rm -f ./$(DEPDIR)/test-cairo-xw.Po -rm -f ./$(DEPDIR)/test-change-page.Po From 2ce40657e97734b09281284766a9bcecc8617e07 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:36:35 +1100 Subject: [PATCH 06/16] (testsuite) added automated run of test programs to github actions workflow --- .github/workflows/build.yml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8c90df4..7fe6fbb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,21 @@ jobs: - name: compile and install giza run: | - ./configure - make - sudo make install + ./configure + make + sudo make install + + # Set up Xvfb for graphical tests + - name: Set up and start Xvfb + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y xvfb + Xvfb :99 -screen 0 1920x1080x24 & + export DISPLAY=:99 + + # Run tests + - name: Run test programs, pressing enter to all prompts + if: matrix.os == 'ubuntu-latest' + run: | + yes "" | make check \ No newline at end of file From 6b2f7da92e19458a338bcf68c9f5f6950ae08f15 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:44:27 +1100 Subject: [PATCH 07/16] (testsuite) print log at end of test run --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7fe6fbb..37a94cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,4 +46,5 @@ jobs: - name: Run test programs, pressing enter to all prompts if: matrix.os == 'ubuntu-latest' run: | - yes "" | make check \ No newline at end of file + yes "" | make check + cat test/C/test-suite.log \ No newline at end of file From 016da5400b09e1f8f49ede9605e9bc996c5d8862 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:47:19 +1100 Subject: [PATCH 08/16] (testsuite) print log at end of test run --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37a94cd..79b49fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,4 +47,9 @@ jobs: if: matrix.os == 'ubuntu-latest' run: | yes "" | make check + + # Run tests + - name: show the test logs + if: matrix.os == 'ubuntu-latest' + run: | cat test/C/test-suite.log \ No newline at end of file From 4ab1a63d19636f55179b229e7db07ccf9482b14b Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 13:51:39 +1100 Subject: [PATCH 09/16] (testsuite) third attempt at printing the log from test run --- .github/workflows/build.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79b49fd..43084c1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,10 +46,5 @@ jobs: - name: Run test programs, pressing enter to all prompts if: matrix.os == 'ubuntu-latest' run: | - yes "" | make check - - # Run tests - - name: show the test logs - if: matrix.os == 'ubuntu-latest' - run: | - cat test/C/test-suite.log \ No newline at end of file + yes "" | make check || { echo "Tests failed. Printing test-suite.log..."; cat test/C/test-suite.log; exit 1; } + \ No newline at end of file From 59b1c9edff66da626a1cc8b42b07b6288c5daf20 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 14:00:16 +1100 Subject: [PATCH 10/16] (testsuite) set global DISPLAY variable in the actions --- .github/workflows/build.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 43084c1..57d15d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,9 @@ jobs: matrix: os: [ubuntu-latest, macos-latest] + env: + DISPLAY: :99 + steps: # make sure we have gfortran installed and linked @@ -34,17 +37,17 @@ jobs: sudo make install # Set up Xvfb for graphical tests - - name: Set up and start Xvfb + - name: Install Xvfb to pretend to launch X-windows in the workflow if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y xvfb - Xvfb :99 -screen 0 1920x1080x24 & - export DISPLAY=:99 # Run tests - name: Run test programs, pressing enter to all prompts if: matrix.os == 'ubuntu-latest' run: | + Xvfb :99 -screen 0 1920x1080x24 & + echo "Current DISPLAY: $DISPLAY" yes "" | make check || { echo "Tests failed. Printing test-suite.log..."; cat test/C/test-suite.log; exit 1; } \ No newline at end of file From 07718d36fceb924424ee441d6b7852801d3458e0 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 15:16:12 +1100 Subject: [PATCH 11/16] (tests) added F90 tests to the automated test suite; check that output png files exist and are non-zero size --- test/F90/Makefile.am | 22 ++- test/F90/Makefile.in | 460 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 463 insertions(+), 19 deletions(-) diff --git a/test/F90/Makefile.am b/test/F90/Makefile.am index 140d24f..9bd59ed 100644 --- a/test/F90/Makefile.am +++ b/test/F90/Makefile.am @@ -4,8 +4,26 @@ LDADD = ../../src/libpgplot.la CLEANFILES = *.png -ftests = test-2D test-fortran test-pgaxis test-pgncur +ftests = test-2D test-fortran test-pgaxis #test-pgncur -#TESTS = $(ftests) +TESTS = $(ftests) check_PROGRAMS = $(ftests) AM_DEFAULT_SOURCE_EXT = .f90 + +# Ensure that the tests are built as part of the 'check' target +check: check_output_files $(ftests) + +test_output_files = giza-test.png giza-test-2D.png + +# Custom target to check for the existence of expected output files from the Fortran tests +check_output_files: + @echo "Checking for required png files..." + @for i in $(test_output_files); do \ + if [ ! -s $$i ]; then \ + echo "ERROR: Required file $$i does not exist."; \ + exit 1; \ + else \ + echo "$$i exists"; \ + fi; \ + done + @echo "All required png files exist." \ No newline at end of file diff --git a/test/F90/Makefile.in b/test/F90/Makefile.in index 79f4c13..0aa07e5 100644 --- a/test/F90/Makefile.in +++ b/test/F90/Makefile.in @@ -89,6 +89,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +TESTS = $(am__EXEEXT_1) check_PROGRAMS = $(am__EXEEXT_1) subdir = test/F90 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -104,7 +105,7 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = test-2D$(EXEEXT) test-fortran$(EXEEXT) \ - test-pgaxis$(EXEEXT) test-pgncur$(EXEEXT) + test-pgaxis$(EXEEXT) test_2D_SOURCES = test-2D.f90 test_2D_OBJECTS = test-2D.$(OBJEXT) test_2D_LDADD = $(LDADD) @@ -121,10 +122,6 @@ test_pgaxis_SOURCES = test-pgaxis.f90 test_pgaxis_OBJECTS = test-pgaxis.$(OBJEXT) test_pgaxis_LDADD = $(LDADD) test_pgaxis_DEPENDENCIES = ../../src/libpgplot.la -test_pgncur_SOURCES = test-pgncur.f90 -test_pgncur_OBJECTS = test-pgncur.$(OBJEXT) -test_pgncur_LDADD = $(LDADD) -test_pgncur_DEPENDENCIES = ../../src/libpgplot.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -153,9 +150,8 @@ AM_V_FCLD = $(am__v_FCLD_@AM_V@) am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@) am__v_FCLD_0 = @echo " FCLD " $@; am__v_FCLD_1 = -SOURCES = test-2D.f90 test-fortran.f90 test-pgaxis.f90 test-pgncur.f90 -DIST_SOURCES = test-2D.f90 test-fortran.f90 test-pgaxis.f90 \ - test-pgncur.f90 +SOURCES = test-2D.f90 test-fortran.f90 test-pgaxis.f90 +DIST_SOURCES = test-2D.f90 test-fortran.f90 test-pgaxis.f90 am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -178,7 +174,218 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -am__DIST_COMMON = $(srcdir)/Makefile.in +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + $$am__collect_skipped_logs \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(IGNORE_SKIPPED_LOGS)'; then \ + am__collect_skipped_logs='--collect-skipped-logs no'; \ +else \ + am__collect_skipped_logs=''; \ +fi; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -325,12 +532,13 @@ AM_FCFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) -I../../src AM_LDFLAGS = -no-install LDADD = ../../src/libpgplot.la CLEANFILES = *.png -ftests = test-2D test-fortran test-pgaxis test-pgncur +ftests = test-2D test-fortran test-pgaxis #test-pgncur AM_DEFAULT_SOURCE_EXT = .f90 +test_output_files = giza-test.png giza-test-2D.png all: all-am .SUFFIXES: -.SUFFIXES: .f90 .lo .o .obj +.SUFFIXES: .f90 .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -377,10 +585,6 @@ test-pgaxis$(EXEEXT): $(test_pgaxis_OBJECTS) $(test_pgaxis_DEPENDENCIES) $(EXTRA @rm -f test-pgaxis$(EXEEXT) $(AM_V_FCLD)$(FCLINK) $(test_pgaxis_OBJECTS) $(test_pgaxis_LDADD) $(LIBS) -test-pgncur$(EXEEXT): $(test_pgncur_OBJECTS) $(test_pgncur_DEPENDENCIES) $(EXTRA_test_pgncur_DEPENDENCIES) - @rm -f test-pgncur$(EXEEXT) - $(AM_V_FCLD)$(FCLINK) $(test_pgncur_OBJECTS) $(test_pgncur_LDADD) $(LIBS) - mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -453,6 +657,208 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + elif test -n "$$redo_logs"; then \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + output_system_information () \ + { \ + echo; \ + { uname -a | $(AWK) '{ \ + printf "System information (uname -a):"; \ + for (i = 1; i < NF; ++i) \ + { \ + if (i != 2) \ + printf " %s", $$i; \ + } \ + printf "\n"; \ +}'; } 2>&1; \ + if test -r /etc/os-release; then \ + echo "Distribution information (/etc/os-release):"; \ + sed 8q /etc/os-release; \ + elif test -r /etc/issue; then \ + echo "Distribution information (/etc/issue):"; \ + cat /etc/issue; \ + fi; \ + }; \ + please_report () \ + { \ +echo "Some test(s) failed. Please report this to $(PACKAGE_BUGREPORT),"; \ +echo "together with the test-suite.log file (gzipped) and your system"; \ +echo "information. Thanks."; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + output_system_information; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG) for debugging.$${std}";\ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + please_report | sed -e "s/^/$${col}/" -e s/'$$'/"$${std}"/; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: $(check_PROGRAMS) + @$(am__rm_f) $(RECHECK_LOGS) + @$(am__rm_f) $(RECHECK_LOGS:.log=.trs) + @$(am__rm_f) $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @$(am__rm_f) $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test-2D.log: test-2D$(EXEEXT) + @p='test-2D$(EXEEXT)'; \ + b='test-2D'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fortran.log: test-fortran$(EXEEXT) + @p='test-fortran$(EXEEXT)'; \ + b='test-fortran'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-pgaxis.log: test-pgaxis$(EXEEXT) + @p='test-pgaxis$(EXEEXT)'; \ + b='test-pgaxis'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -488,6 +894,7 @@ distdir-am: $(DISTFILES) done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: @@ -511,6 +918,9 @@ install-strip: "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: + -$(am__rm_f) $(TEST_LOGS) + -$(am__rm_f) $(TEST_LOGS:.log=.trs) + -$(am__rm_f) $(TEST_SUITE_LOG) clean-generic: -$(am__rm_f) $(CLEANFILES) @@ -593,7 +1003,7 @@ uninstall-am: .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ @@ -605,11 +1015,27 @@ uninstall-am: installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am .PRECIOUS: Makefile +# Ensure that the tests are built as part of the 'check' target +check: check_output_files $(ftests) + +# Custom target to check for the existence of expected output files from the Fortran tests +check_output_files: + @echo "Checking for required png files..." + @for i in $(test_output_files); do \ + if [ ! -s $$i ]; then \ + echo "ERROR: Required file $$i does not exist."; \ + exit 1; \ + else \ + echo "$$i exists"; \ + fi; \ + done + @echo "All required png files exist." + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: From ec70a65d071d255a743d85c350f40fc6472e017d Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 15:21:23 +1100 Subject: [PATCH 12/16] (giza_format_number) compiler warning about type conversion fixed --- src/giza-format-number.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/giza-format-number.c b/src/giza-format-number.c index 465d47a..c51e74d 100644 --- a/src/giza-format-number.c +++ b/src/giza-format-number.c @@ -89,7 +89,7 @@ giza_format_number (int mantissa, int power, int form, char *string, int maxchar /* Integers of four or less digits (or forced integers) */ if ((power >= 0) && ((form == GIZA_NUMBER_FORMAT_AUTO && (power + numDigits) <= 4) || (form == GIZA_NUMBER_FORMAT_DEC && power + numDigits <= 10))) { - for (; power > 0 && numDigits < (sizeof(tmp)-1); --power) + for (; power > 0 && numDigits < (int) (sizeof(tmp)-1); --power) { tmp[numDigits] = '0'; ++numDigits; From b3f1ea5c9ff3e5965c1f42afd92706dbd58ac134 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 15:40:32 +1100 Subject: [PATCH 13/16] (giza-io) compiler warning fixed --- src/giza-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/giza-io.c b/src/giza-io.c index 01bf924..e6c147b 100644 --- a/src/giza-io.c +++ b/src/giza-io.c @@ -201,7 +201,7 @@ _giza_get_log_file (char *string, int len) void _giza_write_log_file (cairo_surface_t *surface) { - char msg[80]; + char msg[120]; char string[80]; _giza_get_log_file(string,sizeof(string)); sprintf(msg,"writing %s",string); From a36ebc4431a3deb8bf4974e4c366f156597c4e24 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 15:40:55 +1100 Subject: [PATCH 14/16] (giza-render) compiler warnings fixed --- src/giza-render-private.h | 1 - src/giza-render.c | 32 ++------------------------------ 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/src/giza-render-private.h b/src/giza-render-private.h index 30f3a0e..59743ce 100644 --- a/src/giza-render-private.h +++ b/src/giza-render-private.h @@ -23,7 +23,6 @@ */ static void _giza_colour_pixel (unsigned char *array, int pixNum, double pos); -static void _giza_colour_pixel_transparent (unsigned char *array, int pixNum, double pos); static void _giza_colour_pixel_alpha (unsigned char *array, int pixNum, double pos, double alpha); static void _giza_colour_pixel_index_alpha (unsigned char *array, int pixNum, int ci, double alpha); void _giza_render (int sizex, int sizey, const double* data, int i1, int i2, diff --git a/src/giza-render.c b/src/giza-render.c index 807213d..02599a4 100644 --- a/src/giza-render.c +++ b/src/giza-render.c @@ -121,7 +121,6 @@ _giza_render (int sizex, int sizey, const double* data, int i1, int i2, cairo_matrix_t mat; int stride, pixnum, width = i2 - i1 + 1, height = j2 - j1 + 1; int cimin, cimax; - double pos, alpha; cairo_extend_t cairoextendtype; _giza_get_extend(extend,&cairoextendtype); @@ -162,12 +161,12 @@ _giza_render (int sizex, int sizey, const double* data, int i1, int i2, } } else if (transparent==1) { /* render each pixel, using transparent routine */ - int idx; + int idx; for (j = j1; j <= j2; j++) { for (i = i1; i <= i2; i++) { - idx = itf_idx(data[j*sizex + i], valMin, valMax, cimin, cimax); + idx = itf_idx(data[j*sizex + i], valMin, valMax, cimin, cimax); _giza_colour_pixel_index_alpha (pixdata, pixnum, idx, idx==cimin ? 0. : 1.); pixnum = pixnum + 1; } @@ -276,13 +275,6 @@ _giza_render_float (int sizex, int sizey, const float* data, int i1, cairo_matrix_t mat; int stride, pixnum, width = i2 - i1 + 1, height = j2 - j1 + 1; int cimin, cimax; - double pos,alpha,ddval; - double dvalMin = (double) valMin; - if (valMax - valMin > 0.) { - ddval = 1./((double) valMax - dvalMin); - } else { - ddval = 0.; - } cairo_extend_t cairoextendtype; _giza_get_extend(extend,&cairoextendtype); @@ -414,26 +406,6 @@ _giza_colour_pixel (unsigned char *array, int pixNum, double pos) array[pixNum * 4 + 0] = (unsigned char) (b * 255.); } -/** - * As in _giza_colour_pixel, but sets the pixels to be transparent if pos <= 0 - */ -static void -_giza_colour_pixel_transparent (unsigned char *array, int pixNum, double pos) -{ - double r, g, b; - giza_rgb_from_table (pos, &r, &g, &b); - /* set the alpha */ - if (pos <= 0.) { - array[pixNum * 4 + 3] = 0.; - } else { - array[pixNum * 4 + 3] = 255.; - } - /* set the red, green, and blue */ - array[pixNum * 4 + 2] = (unsigned char) (r * 255.); - array[pixNum * 4 + 1] = (unsigned char) (g * 255.); - array[pixNum * 4 + 0] = (unsigned char) (b * 255.); -} - /** * As in _giza_colour_pixel, but takes an additional alpha parameter */ From b57c6ef53daeae0f2bad3c500b104afd1d7e18fc Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 15:49:10 +1100 Subject: [PATCH 15/16] (xw) further tweaks to error message when cannot launch X-window --- src/giza-driver-xw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/giza-driver-xw.c b/src/giza-driver-xw.c index 12171bc..1b28b76 100644 --- a/src/giza-driver-xw.c +++ b/src/giza-driver-xw.c @@ -117,7 +117,7 @@ _giza_open_device_xw (double width, double height, int units) XW[id].display = XOpenDisplay (NULL); if (!XW[id].display) { - _giza_error ("_giza_open_device_xw", "Cannot launch X window (use ssh -Y not ssh / install XQuartz if on Mac)"); + _giza_error ("_giza_open_device_xw", "Cannot launch X window (use ssh -Y if remote; install XQuartz if on Mac)"); return 1; } From 3d3ead517ef11c69cd1b6b93203f3426c71bb663 Mon Sep 17 00:00:00 2001 From: Daniel Price Date: Mon, 2 Dec 2024 18:01:32 +1100 Subject: [PATCH 16/16] v1.4.2 --- AUTHORS | 6 +++++- LATEST.md | 10 +++++++--- configure | 24 ++++++++++++------------ configure.ac | 2 +- docs/news/index.html | 1 + 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/AUTHORS b/AUTHORS index 2808e5b..5f9b973 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,7 +1,11 @@ Contributors (for updated list, use git shortlog -s -n -e): Daniel Price (main contact) + Harro Verkouter James Wetter Joachim Frieben - Harro Verkouter Hiroyuki Ito Mark Hutchison + Terrence Tricco + Aard Keimpema + Benson Muite + Fabian P. Schmidt diff --git a/LATEST.md b/LATEST.md index 87b14b2..e13a129 100644 --- a/LATEST.md +++ b/LATEST.md @@ -1,4 +1,8 @@ -Changes in v1.4.1 +Changes in v1.4.2 ------------------ -- quieter output from mp4 device -- bug fix in release workflow +- bug fix with build on Mac OS: explicitly request static libs for libgiza.a and libpglot.a +- bug fix with pkg-config failing to find cairo.h +- bug fix with weird black screen on Mac OS after clicking in a plot window (#55) +- issues in test suite fixed (#50) +- bug fix with giza_circle (#52) +- added automated build and test suite to github actions workflow diff --git a/configure b/configure index 86d1061..f001912 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.72 for giza 1.4.1. +# Generated by GNU Autoconf 2.72 for giza 1.4.2. # # Report bugs to . # @@ -614,8 +614,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='giza' PACKAGE_TARNAME='giza' -PACKAGE_VERSION='1.4.1' -PACKAGE_STRING='giza 1.4.1' +PACKAGE_VERSION='1.4.2' +PACKAGE_STRING='giza 1.4.2' PACKAGE_BUGREPORT='daniel.price@monash.edu' PACKAGE_URL='http://danieljprice.github.io/giza' @@ -1383,7 +1383,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -'configure' configures giza 1.4.1 to adapt to many kinds of systems. +'configure' configures giza 1.4.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1454,7 +1454,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of giza 1.4.1:";; + short | recursive ) echo "Configuration of giza 1.4.2:";; esac cat <<\_ACEOF @@ -1584,7 +1584,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -giza configure 1.4.1 +giza configure 1.4.2 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. @@ -1896,7 +1896,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by giza $as_me 1.4.1, which was +It was created by giza $as_me 1.4.2, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -3370,7 +3370,7 @@ fi # Define the identity of the package. PACKAGE='giza' - VERSION='1.4.1' + VERSION='1.4.2' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -4998,7 +4998,7 @@ GIZA_VERSION_MAJOR=1 GIZA_VERSION_MINOR=4 -GIZA_VERSION_MICRO=1 +GIZA_VERSION_MICRO=2 # # The following specify the interface version numbers for giza. @@ -5014,7 +5014,7 @@ GIZA_VERSION_MICRO=1 # LT_CURRENT=1 -LT_REVISION=1 +LT_REVISION=2 LT_AGE=1 @@ -17367,7 +17367,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by giza $as_me 1.4.1, which was +This file was extended by giza $as_me 1.4.2, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17436,7 +17436,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -giza config.status 1.4.1 +giza config.status 1.4.2 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index df7e4e4..a37c4d3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_PREREQ(2.61) m4_define(giza_version_major,1) m4_define(giza_version_minor,4) -m4_define(giza_version_micro,1) +m4_define(giza_version_micro,2) AC_INIT([giza], [giza_version_major.giza_version_minor.giza_version_micro], [daniel.price@monash.edu],[], diff --git a/docs/news/index.html b/docs/news/index.html index 2bfd836..957fb0d 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -21,6 +21,7 @@

News

+

2024.12.02: 1.4.2 released.

2023.11.30: 1.4.1 released.

2023.11.28: 1.4.0 released.

2022.03.28: 1.3.2 released.