Merge branch 'ds/coverage-prove'
authorJunio C Hamano <gitster@pobox.com>
Sat, 9 Feb 2019 04:44:51 +0000 (20:44 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 9 Feb 2019 04:44:51 +0000 (20:44 -0800)
A new target "coverage-prove" to run the coverage test under
"prove" has been added.

* ds/coverage-prove:
Makefile: add coverage-prove target

1  2 
Makefile
diff --combined Makefile
index 571160a2c4dde4b89f3cbddafdcb2d168f9446c1,23d8730482d0d8e6625a276cad0f18b3129edc00..0e13a5b4698a02e93c9f2c95e06b4193fe229567
+++ b/Makefile
@@@ -186,12 -186,6 +186,12 @@@ all:
  # in one call to the platform's SHA1_Update(). e.g. APPLE_COMMON_CRYPTO
  # wants 'SHA1_MAX_BLOCK_SIZE=1024L*1024L*1024L' defined.
  #
 +# Define BLK_SHA256 to use the built-in SHA-256 routines.
 +#
 +# Define GCRYPT_SHA256 to use the SHA-256 routines in libgcrypt.
 +#
 +# Define OPENSSL_SHA256 to use the SHA-256 routines in OpenSSL.
 +#
  # Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin).
  #
  # Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
@@@ -574,11 -568,7 +574,11 @@@ SPATCH = spatc
  
  export TCL_PATH TCLTK_PATH
  
 -SPARSE_FLAGS =
 +# user customisation variable for 'sparse' target
 +SPARSE_FLAGS ?=
 +# internal/platform customisation variable for 'sparse'
 +SP_EXTRA_FLAGS =
 +
  SPATCH_FLAGS = --all-includes --patch .
  
  
@@@ -638,6 -628,7 +638,6 @@@ SCRIPT_LIB += git-parse-remot
  SCRIPT_LIB += git-rebase--am
  SCRIPT_LIB += git-rebase--common
  SCRIPT_LIB += git-rebase--preserve-merges
 -SCRIPT_LIB += git-rebase--merge
  SCRIPT_LIB += git-sh-setup
  SCRIPT_LIB += git-sh-i18n
  
@@@ -693,7 -684,6 +693,7 @@@ SCRIPTS = $(SCRIPT_SH_INS) 
  
  ETAGS_TARGET = TAGS
  
 +FUZZ_OBJS += fuzz-commit-graph.o
  FUZZ_OBJS += fuzz-pack-headers.o
  FUZZ_OBJS += fuzz-pack-idx.o
  
@@@ -734,9 -724,7 +734,9 @@@ TEST_BUILTINS_OBJS += test-dump-split-i
  TEST_BUILTINS_OBJS += test-dump-untracked-cache.o
  TEST_BUILTINS_OBJS += test-example-decorate.o
  TEST_BUILTINS_OBJS += test-genrandom.o
 +TEST_BUILTINS_OBJS += test-hash.o
  TEST_BUILTINS_OBJS += test-hashmap.o
 +TEST_BUILTINS_OBJS += test-hash-speed.o
  TEST_BUILTINS_OBJS += test-index-version.o
  TEST_BUILTINS_OBJS += test-json-writer.o
  TEST_BUILTINS_OBJS += test-lazy-init-name-hash.o
@@@ -759,7 -747,6 +759,7 @@@ TEST_BUILTINS_OBJS += test-run-command.
  TEST_BUILTINS_OBJS += test-scrap-cache-tree.o
  TEST_BUILTINS_OBJS += test-sha1.o
  TEST_BUILTINS_OBJS += test-sha1-array.o
 +TEST_BUILTINS_OBJS += test-sha256.o
  TEST_BUILTINS_OBJS += test-sigchain.o
  TEST_BUILTINS_OBJS += test-strcmp-offset.o
  TEST_BUILTINS_OBJS += test-string-list.o
@@@ -767,7 -754,6 +767,7 @@@ TEST_BUILTINS_OBJS += test-submodule-co
  TEST_BUILTINS_OBJS += test-submodule-nested-repo-config.o
  TEST_BUILTINS_OBJS += test-subprocess.o
  TEST_BUILTINS_OBJS += test-urlmatch-normalization.o
 +TEST_BUILTINS_OBJS += test-xml-encode.o
  TEST_BUILTINS_OBJS += test-wildmatch.o
  TEST_BUILTINS_OBJS += test-windows-named-pipe.o
  TEST_BUILTINS_OBJS += test-write-cache.o
@@@ -1660,19 -1646,6 +1660,19 @@@ endi
  endif
  endif
  
 +ifdef OPENSSL_SHA256
 +      EXTLIBS += $(LIB_4_CRYPTO)
 +      BASIC_CFLAGS += -DSHA256_OPENSSL
 +else
 +ifdef GCRYPT_SHA256
 +      BASIC_CFLAGS += -DSHA256_GCRYPT
 +      EXTLIBS += -lgcrypt
 +else
 +      LIB_OBJS += sha256/block/sha256.o
 +      BASIC_CFLAGS += -DSHA256_BLK
 +endif
 +endif
 +
  ifdef SHA1_MAX_BLOCK_SIZE
        LIB_OBJS += compat/sha1-chunked.o
        BASIC_CFLAGS += -DSHA1_MAX_BLOCK_SIZE="$(SHA1_MAX_BLOCK_SIZE)"
@@@ -2374,10 -2347,10 +2374,10 @@@ gettext.sp gettext.s gettext.o: GIT-PRE
  gettext.sp gettext.s gettext.o: EXTRA_CPPFLAGS = \
        -DGIT_LOCALE_PATH='"$(localedir_relative_SQ)"'
  
 -http-push.sp http.sp http-walker.sp remote-curl.sp imap-send.sp: SPARSE_FLAGS += \
 +http-push.sp http.sp http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \
        -DCURL_DISABLE_TYPECHECK
  
 -pack-revindex.sp: SPARSE_FLAGS += -Wno-memcpy-max-count
 +pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count
  
  ifdef NO_EXPAT
  http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT
@@@ -2391,7 -2364,7 +2391,7 @@@ endi
  ifdef USE_NED_ALLOCATOR
  compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
        -DNDEBUG -DREPLACE_SYSTEM_ALLOCATOR
 -compat/nedmalloc/nedmalloc.sp: SPARSE_FLAGS += -Wno-non-pointer-null
 +compat/nedmalloc/nedmalloc.sp: SP_EXTRA_FLAGS += -Wno-non-pointer-null
  endif
  
  git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
@@@ -2715,7 -2688,7 +2715,7 @@@ SP_OBJ = $(patsubst %.o,%.sp,$(C_OBJ)
  
  $(SP_OBJ): %.sp: %.c GIT-CFLAGS FORCE
        $(QUIET_SP)cgcc -no-compile $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) \
 -              $(SPARSE_FLAGS) $<
 +              $(SPARSE_FLAGS) $(SP_EXTRA_FLAGS) $<
  
  .PHONY: sparse $(SP_OBJ)
  sparse: $(SP_OBJ)
@@@ -2953,16 -2926,6 +2953,16 @@@ rpm:
        @false
  .PHONY: rpm
  
 +artifacts-tar:: $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) $(OTHER_PROGRAMS) \
 +              GIT-BUILD-OPTIONS $(TEST_PROGRAMS) $(test_bindir_programs) \
 +              $(NO_INSTALL) $(MOFILES)
 +      $(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1) \
 +              SHELL_PATH='$(SHELL_PATH_SQ)' PERL_PATH='$(PERL_PATH_SQ)'
 +      test -n "$(ARTIFACTS_DIRECTORY)"
 +      mkdir -p "$(ARTIFACTS_DIRECTORY)"
 +      $(TAR) czf "$(ARTIFACTS_DIRECTORY)/artifacts.tar.gz" $^ templates/blt/
 +.PHONY: artifacts-tar
 +
  htmldocs = git-htmldocs-$(GIT_VERSION)
  manpages = git-manpages-$(GIT_VERSION)
  .PHONY: dist-doc distclean
@@@ -3114,6 -3077,11 +3114,11 @@@ coverage-test: coverage-clean-results c
        $(MAKE) CFLAGS="$(COVERAGE_CFLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" \
                DEFAULT_TEST_TARGET=test -j1 test
  
+ coverage-prove: coverage-clean-results coverage-compile
+       $(MAKE) CFLAGS="$(COVERAGE_CFLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" \
+               DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$(GIT_PROVE_OPTS) -j1" \
+               -j1 test
  coverage-report:
        $(QUIET_GCOV)for dir in $(object_dirs); do \
                $(GCOV) $(GCOVFLAGS) --object-directory=$$dir $$dir*.c || exit; \
@@@ -3140,7 -3108,7 +3145,7 @@@ cover_db_html: cover_d
  # An example command to build against libFuzzer from LLVM 4.0.0:
  #
  # make CC=clang CXX=clang++ \
 -#      FUZZ_CXXFLAGS="-fsanitize-coverage=trace-pc-guard -fsanitize=address" \
 +#      CFLAGS="-fsanitize-coverage=trace-pc-guard -fsanitize=address" \
  #      LIB_FUZZING_ENGINE=/usr/lib/llvm-4.0/lib/libFuzzer.a \
  #      fuzz-all
  #