Skip to content

Commit 28c949a

Browse files
committed
JBMC: Added java-library models dependency
This commit adds a dependency to the java-models-library (https://github.com/diffblue/java-models-library). This repository contains models for number of classes derived from the java standard library These models are needed to support concurrency. This commit also contains a minor fix that removes superfluous padding from the java_bytecode converter. Note: src/org/cprover/CProver.java has been removed as this has been superseded by the CProver.java in java-models-library.
1 parent f156ef0 commit 28c949a

File tree

9 files changed

+33
-175
lines changed

9 files changed

+33
-175
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ jobs:
233233
name: "diffblue/cbmc"
234234
description: "Travis build of ${TRAVIS_COMMIT}"
235235
notification_email: "[email protected]"
236+
build_command_prepend: "make -C jbmc/src java-models-library-download"
236237
build_command_prepend: "make -C src minisat2-download"
237238
build_command: "make -C src -j2; make -C jbmc/src -j2"
238239
branch_pattern: "develop"
@@ -259,6 +260,7 @@ jobs:
259260
install:
260261
- ccache -z
261262
- ccache --max-size=1G
263+
- make -C jbmc/src java-models-library-download
262264
- make -C src minisat2-download
263265
- make -C src/ansi-c library_check
264266
- make -C src "CXX=${COMPILER} ${EXTRA_CXXFLAGS}" -j3
@@ -286,4 +288,3 @@ notifications:
286288
on_start: never
287289
on_cancel: never
288290
on_error: always
289-

appveyor.yml

+5
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,17 @@ install:
4242
& 7z x minisat2_2.2.1.orig.tar.gz
4343
&7z x minisat2_2.2.1.orig.tar
4444
}
45+
if (!(Test-Path java-models-library-master)) {
46+
& appveyor downloadfile https://github.com/diffblue/java-models-library/archive/master.zip
47+
& 7z x java-models-library-master.zip
48+
}
4549
cd ..
4650
4751
cache: deps
4852

4953
build_script:
5054
- cmd: |
55+
cp -r deps/java-models-library-master/src jbmc/src/java_bytecode/library
5156
cp -r deps/minisat2-2.2.1 minisat-2.2.1
5257
patch -d minisat-2.2.1 -p1 < scripts/minisat-2.2.1-patch
5358
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64

buildspec.yml

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ phases:
1313
build:
1414
commands:
1515
- echo Build started on `date`
16+
- make -C jbmc/src java-models-library-download
1617
- (cd src ; make minisat2-download)
1718
- (cd src ; make CXX="ccache g++" -j2)
1819
- (cd regression ; make test)

jbmc/src/Makefile

+10
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,13 @@ $(patsubst %, %_clean, $(DIRS)):
4848
.PHONY: cprover_clean
4949
cprover_clean:
5050
$(MAKE) $(MAKEARGS) -C $(CPROVER_DIR)/src clean
51+
52+
# extended JBMC models download, for your convenience
53+
54+
java-models-library-download:
55+
@echo "Downloading java models library"
56+
@curl -L https://github.com/diffblue/java-models-library/archive/master.zip > java-models-library.tar.gz
57+
@unzip java-models-library.tar.gz
58+
@rm java-models-library.tar.gz
59+
@cp -r java-models-library-master/src java_bytecode/library
60+
@rm -r java-models-library-master
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
src
2+
classes
3+
converter
4+
core-models.jar
5+
java_core_models.inc

jbmc/src/java_bytecode/library/CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,11 @@ add_custom_command(OUTPUT ${JAVA_CORE_MODELS_INC}
2222
# create a target 'core-models-inc' that depends on the .inc file
2323
add_custom_target(java-core-models-inc
2424
DEPENDS ${JAVA_CORE_MODELS_INC})
25+
26+
message(STATUS "Downloading java-models-library...")
27+
include("${CBMC_SOURCE_DIR}/../cmake/DownloadProject.cmake")
28+
download_project(PROJ java_models_library
29+
URL https://github.com/diffblue/java-models-library/archive/master.zip
30+
PATCH_COMMAND cmake -E copy_directory "${JBMC_BINARY_DIR}/../../java_models_library-src/src"
31+
"${JBMC_SOURCE_DIR}/java_bytecode/library/src"
32+
)

jbmc/src/java_bytecode/library/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ include ../../config.inc
88
include ../../$(CPROVER_DIR)/src/config.inc
99
include ../../$(CPROVER_DIR)/src/common
1010

11-
SOURCE_DIR := src
11+
SOURCE_DIR := src/main/java
1212
BINARY_DIR := classes
1313

1414
FIND := find

jbmc/src/java_bytecode/library/converter.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ int main(int argc, char *argv[])
6666
printf("\n");
6767
}
6868

69-
std::cout << "\n#define " << varname << "_SIZE " << size << "\n\n";
69+
std::cout << "\n#define " << varname << "_SIZE " << size << "\n";
7070
src.close();
7171
return 0;
7272
}

jbmc/src/java_bytecode/library/src/org/cprover/CProver.java

-172
This file was deleted.

0 commit comments

Comments
 (0)