From: Michael R Sweet Date: Sun, 10 Sep 2023 21:57:57 +0000 (-0400) Subject: Separate building unit test programs from running them. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1d42061e9286f50eefc851ed906d17c6e80c4b0;p=thirdparty%2Fcups.git Separate building unit test programs from running them. Fix typo in cupsGetDests unit test. --- diff --git a/cups/Makefile b/cups/Makefile index 4c041aa672..a9ff5075cf 100644 --- a/cups/Makefile +++ b/cups/Makefile @@ -219,6 +219,46 @@ all: $(TARGETS) libs: $(LIBTARGETS) +# +# Run unit tests... +# + +test: unittests + echo "Tests started at $(date)..." >test.log + echo Running array API tests... + ./testarray >>test.log + echo Running file API tests... + ./testfile >>test.log + echo Running HTTP API tests... + ./testhttp >>test.log + echo Running IPP API tests... + ./testipp >>test.log + echo Running internationalization API tests... + ./testi18n >>test.log + echo Creating locale directory structure... + $(RM) -r locale + for po in ../locale/cups_*.po; do \ + lang=`basename $$po .po | sed -e '1,$$s/^cups_//'`; \ + $(MKDIR) locale/$$lang; \ + $(LN) ../../$$po locale/$$lang; \ + done + echo Running language API tests... + echo ls -al locale >>test.log + ls -al locale >>test.log + LOCALEDIR=locale ./testlang >>test.log + echo Running option API tests... + ./testoptions >>test.log + echo Running PPD API tests... + ./testppd >>test.log + echo Running PWG API tests... + ./testpwg test.ppd >>test.log + echo Running raster API tests... + ./testraster >>test.log +# echo Fuzzing IPP API... +# ./fuzzipp >>test.log + echo "Tests finished at $(date)..." >>test.log + + # # Make unit tests... # @@ -476,8 +516,6 @@ fuzzipp: fuzzipp.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ fuzzipp.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Fuzzing IPP API... - ./fuzzipp # @@ -508,8 +546,6 @@ testarray: testarray.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testarray.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running array API tests... - ./testarray # @@ -590,8 +626,6 @@ testfile: testfile.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testfile.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running file API tests... - ./testfile # @@ -612,8 +646,6 @@ testhttp: testhttp.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testhttp.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running HTTP API tests... - ./testhttp # @@ -624,8 +656,6 @@ testipp: testipp.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testipp.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running IPP API tests... - ./testipp # @@ -636,8 +666,6 @@ testi18n: testi18n.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testi18n.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running internationalization API tests... - ./testi18n # @@ -648,17 +676,6 @@ testlang: testlang.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testlang.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Creating locale directory structure... - $(RM) -r locale - for po in ../locale/cups_*.po; do \ - lang=`basename $$po .po | sed -e '1,$$s/^cups_//'`; \ - $(MKDIR) locale/$$lang; \ - $(LN) ../../$$po locale/$$lang; \ - done - echo Running language API tests... - echo ls -al locale - ls -al locale - LOCALEDIR=locale ./testlang # @@ -669,8 +686,6 @@ testoptions: testoptions.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testoptions.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running option API tests... - ./testoptions # @@ -681,8 +696,6 @@ testppd: testppd.o $(LIBCUPSSTATIC) test.ppd test2.ppd echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testppd.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running PPD API tests... - ./testppd # @@ -693,8 +706,6 @@ testpwg: testpwg.o $(LIBCUPSSTATIC) test.ppd echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testpwg.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running PWG API tests... - ./testpwg test.ppd # @@ -705,8 +716,6 @@ testraster: testraster.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ testraster.o $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Running raster API tests... - ./testraster # @@ -750,7 +759,7 @@ apihelp: cupspm.xml \ array.[ch] auth.c cups.h dest*.c dir.[ch] encode.c file.[ch] \ http.h http*.c ipp.h ipp*.c options.c pwg.[ch] \ - raster.h raster-stubs.c tls-darwin.c usersys.c util.c \ + raster.h raster-stubs.c string.c tempfile.c thread.[ch] tls.c tls-openssl.c usersys.c util.c \ --coverimage cupspm.png \ --epub ../doc/help/cupspm.epub codedoc --section "Programming" --body cupspm.md \ diff --git a/cups/testgetdests.c b/cups/testgetdests.c index 5b9069568b..15f34c7f53 100644 --- a/cups/testgetdests.c +++ b/cups/testgetdests.c @@ -1,45 +1,68 @@ -/* - * CUPS cupsGetDests API test program for CUPS. - * - * Copyright 2017 by Apple Inc. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more information. - */ - -/* - * Include necessary headers... - */ +// +// CUPS cupsGetDests API test program for CUPS. +// +// Copyright © 2023 by OpenPrinting. +// Copyright © 2017 by Apple Inc. +// +// Licensed under Apache License v2.0. See the file "LICENSE" for more +// information. +// #include -#include "cups.h" +#include #include +#include "cups.h" +#include "test-internal.h" -/* - * 'main()' - Loop calling cupsGetDests. - */ +// +// 'main()' - Loop calling cupsGetDests. +// -int /* O - Exit status */ -main(void) +int // O - Exit status +main(int argc, // I - Number of command-line arguments + char *argv[]) // I - Command-line arguments { - int num_dests; /* Number of destinations */ - cups_dest_t *dests; /* Destinations */ - struct timeval start, end; /* Start and stop time */ - double secs; /* Total seconds to run cupsGetDests */ + size_t count = 1; // Number of times + size_t num_dests; // Number of destinations + cups_dest_t *dests; // Destinations + struct timeval start, end; // Start and stop time + double secs; // Total seconds to run cupsGetDests + + + // Parse command-line... + if (argc > 2 || (argc == 2 && (argv[1][0] < '1' || argv[1][0] > '9'))) + { + fputs("Usage: ./testgetdests [COUNT]\n", stderr); + return (1); + } + if (argc == 2) + count = strtoul(argv[1], NULL, 10); + else + count = 5; - for (;;) + // Run tests... + while (count > 0) { + testBegin("cupsGetDests"); gettimeofday(&start, NULL); - num_dests = cupsGetDests(&dests); + num_dests = cupsGetDests2(CUPS_HTTP_DEFAULT, &dests); gettimeofday(&end, NULL); secs = end.tv_sec - start.tv_sec + 0.000001 * (end.tv_usec - start.tv_usec); - printf("Found %d printers in %.3f seconds...\n", num_dests, secs); + if (cupsGetError() != IPP_STATUS_OK) + testEndMessage(false, "%s", cupsGetErrorString()); + else + testEndMessage(secs < 2.0, "%u printers in %.3f seconds", (unsigned)num_dests, secs); cupsFreeDests(num_dests, dests); - sleep(1); + + count --; + + if (count > 0) + sleep(1); } - return (0); + return (testsPassed ? 0 : 1); }