Skip to content

Commit 458b5c0

Browse files
author
Nathan Wetzler
committed
Added README, removed unnecessary code, added dfcc to build
-- DFCC failing in this context
1 parent a3f2acc commit 458b5c0

File tree

4 files changed

+13
-350
lines changed

4 files changed

+13
-350
lines changed

regression/contracts/s2n_record_writev/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ PROOFDIR ?= $(abspath .)
1010

1111
CBMC_OBJECT_BITS = 9
1212
PROOF_UID = s2n_record_writev
13-
HARNESS_ENTRY = $(PROOF_UID)
14-
HARNESS_FILE = $(HARNESS_ENTRY).c
13+
HARNESS_ENTRY = $(PROOF_UID)_harness
14+
HARNESS_FILE = $(PROOF_UID).c
1515

1616
CHECK_FUNCTION_CONTRACTS += s2n_record_writev
1717
USE_FUNCTION_CONTRACTS += s2n_hmac_update

regression/contracts/s2n_record_writev/Makefile.common

+2-16
Original file line numberDiff line numberDiff line change
@@ -662,22 +662,8 @@ $(HARNESS_GOTO)5.goto: $(HARNESS_GOTO)4.goto
662662
--ci-stage build \
663663
--description "$(PROOF_UID): slicing global initializations"
664664

665-
# Replace function calls with function contracts
666-
# This must be done before enforcing function contracts,
667-
# since contract enforcement inlines all function calls.
668-
$(HARNESS_GOTO)6.goto: $(HARNESS_GOTO)5.goto
669-
$(LITANI) add-job \
670-
--command \
671-
'$(GOTO_INSTRUMENT) $(CBMC_VERBOSITY) $(CBMC_USE_FUNCTION_CONTRACTS) $^ $@' \
672-
--inputs $^ \
673-
--outputs $@ \
674-
--stdout-file $(LOGDIR)/use_function_contracts-log.txt \
675-
--pipeline-name "$(PROOF_UID)" \
676-
--ci-stage build \
677-
--description "$(PROOF_UID): replacing function calls with function contracts"
678-
679665
# Unwind loops for loop and function contracts
680-
$(HARNESS_GOTO)7.goto: $(HARNESS_GOTO)6.goto
666+
$(HARNESS_GOTO)7.goto: $(HARNESS_GOTO)5.goto
681667
$(LITANI) add-job \
682668
--command \
683669
'$(GOTO_INSTRUMENT) $(CBMC_VERBOSITY) $(CBMC_EARLY_UNWINDSET) $(CBMC_FLAG_UNWINDING_ASSERTIONS) $^ $@' \
@@ -704,7 +690,7 @@ $(HARNESS_GOTO)8.goto: $(HARNESS_GOTO)7.goto
704690
$(HARNESS_GOTO)9.goto: $(HARNESS_GOTO)8.goto
705691
$(LITANI) add-job \
706692
--command \
707-
'$(GOTO_INSTRUMENT) $(CBMC_VERBOSITY) $(CBMC_CHECK_FUNCTION_CONTRACTS) $^ $@' \
693+
'$(GOTO_INSTRUMENT) $(CBMC_VERBOSITY) --dfcc $(HARNESS_ENTRY) $(CBMC_CHECK_FUNCTION_CONTRACTS) $(CBMC_USE_FUNCTION_CONTRACTS) $^ $@' \
708694
--inputs $^ \
709695
--outputs $@ \
710696
--stdout-file $(LOGDIR)/check_function_contracts-log.txt \
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
This directory contains an example of a problem encountered when
2+
applying function contracts in the context of AWS s2n-tls. Run the
3+
example by using the command:
4+
5+
make veryclean && make result
6+
7+
This creates a large problem during symbolic execution and solving.
8+
9+
This test is currently not included in the any regression.

0 commit comments

Comments
 (0)