Home | History | Annotate | Download | only in tests
      1 #***************************************************************************
      2 #                                  _   _ ____  _
      3 #  Project                     ___| | | |  _ \| |
      4 #                             / __| | | | |_) | |
      5 #                            | (__| |_| |  _ <| |___
      6 #                             \___|\___/|_| \_\_____|
      7 #
      8 # Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel (a] haxx.se>, et al.
      9 #
     10 # This software is licensed as described in the file COPYING, which
     11 # you should have received as part of this distribution. The terms
     12 # are also available at https://curl.haxx.se/docs/copyright.html.
     13 #
     14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
     15 # copies of the Software, and permit persons to whom the Software is
     16 # furnished to do so, under the terms of the COPYING file.
     17 #
     18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     19 # KIND, either express or implied.
     20 #
     21 ###########################################################################
     22 
     23 HTMLPAGES = testcurl.html runtests.html
     24 PDFPAGES = testcurl.pdf runtests.pdf
     25 MANDISTPAGES = runtests.1.dist testcurl.1.dist
     26 
     27 # the path to the impacket python lib used for SMB tests
     28 IMP = python_dependencies/impacket
     29 SMBDEPS = $(IMP)/__init__.py $(IMP)/nmb.py $(IMP)/nt_errors.py          \
     30  $(IMP)/ntlm.py $(IMP)/smb.py $(IMP)/smb3.py $(IMP)/smb3structs.py      \
     31  $(IMP)/smbserver.py $(IMP)/spnego.py $(IMP)/structure.py               \
     32  $(IMP)/uuid.py $(IMP)/version.py smbserver.py curl_test_data.py
     33 
     34 EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl           \
     35  getpart.pm FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl           \
     36  valgrind.pm ftp.pm sshserver.pl sshhelp.pm pathhelp.pm testcurl.1 runtests.1 \
     37  serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl      \
     38  CMakeLists.txt mem-include-scan.pl valgrind.supp extern-scan.pl              \
     39  manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py                  \
     40  negtelnetserver.py $(SMBDEPS) objnames-test08.sh objnames-test10.sh          \
     41  objnames.inc
     42 
     43 DISTCLEANFILES = configurehelp.pm
     44 
     45 # we have two variables here to make sure DIST_SUBDIRS won't get 'unit'
     46 # added twice as then targets such as 'distclean' misbehave and try to
     47 # do things twice in that subdir at times (and thus fails).
     48 if BUILD_UNITTESTS
     49 BUILD_UNIT = unit
     50 DIST_UNIT =
     51 else
     52 BUILD_UNIT =
     53 DIST_UNIT = unit
     54 endif
     55 
     56 SUBDIRS = certs data server libtest $(BUILD_UNIT)
     57 DIST_SUBDIRS = $(SUBDIRS) $(DIST_UNIT)
     58 
     59 PERLFLAGS = -I$(srcdir)
     60 
     61 CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid $(MANDISTPAGES)
     62 
     63 MAN2HTML= roffit $< >$@
     64 
     65 curl:
     66 	@cd $(top_builddir) && $(MAKE)
     67 
     68 if CROSSCOMPILING
     69 TEST = @echo "NOTICE: we can't run the tests when cross-compiling!"
     70 else # if not cross-compiling:
     71 TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl
     72 TEST_Q = -a -s
     73 TEST_AM = -a -am
     74 TEST_F = -a -p -r
     75 TEST_T = -a -t
     76 TEST_E = -a -e
     77 
     78 # !flaky means that it'll skip all tests using the flaky keyword
     79 TEST_NF = -a -p !flaky
     80 endif
     81 
     82 # make sure that PERL is pointing to an executable
     83 perlcheck:
     84 	@if ! test -x "$(PERL)"; then echo "No perl!"; exit 2; fi
     85 
     86 test: perlcheck all
     87 	$(TEST) $(TFLAGS)
     88 
     89 quiet-test: perlcheck all
     90 	$(TEST) $(TEST_Q) $(TFLAGS)
     91 
     92 am-test: perlcheck all
     93 	$(TEST) $(TEST_AM) $(TFLAGS)
     94 
     95 full-test: perlcheck all
     96 	$(TEST) $(TEST_F) $(TFLAGS)
     97 
     98 nonflaky-test: perlcheck all
     99 	$(TEST) $(TEST_NF) $(TFLAGS)
    100 
    101 torture-test: perlcheck all
    102 	$(TEST) $(TEST_T) $(TFLAGS)
    103 
    104 event-test: perlcheck all
    105 	$(TEST) $(TEST_E) $(TFLAGS)
    106 
    107 .1.html:
    108 	$(MAN2HTML)
    109 
    110 .1.pdf:
    111 	@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \
    112 	groff -Tps -man $< >$$foo.ps; \
    113 	ps2pdf $$foo.ps $@; \
    114 	rm $$foo.ps; \
    115 	echo "converted $< to $@")
    116 
    117 checksrc:
    118 	cd libtest && $(MAKE) checksrc
    119 	cd unit && $(MAKE) checksrc
    120 	cd server && $(MAKE) checksrc
    121 
    122 if CURLDEBUG
    123 # for debug builds, we scan the sources on all regular make invokes
    124 all-local: checksrc
    125 endif
    126