-
Notifications
You must be signed in to change notification settings - Fork 0
TCK for Safety-Critical Java (JSR-302)
aplsek/tck-jsr302
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Project: TCK-JSR302 Authors: - Ales Plsek, <[email protected]>, Purdue University - Martin Schoeberl, <[email protected]>, Technical University of Denmark - Lei Zhao, Purdue University - Jan Vitek, Purdue University Mailing-list: [email protected] ========================== Info =================== Technology Compatibility Kits (TCKs) are a required component of any Java Specification Request (JSR). This project provides such a TCK for SafetyCritical Java (SCJ), which is being specified as JSR-302. TCK : Install & Settings =================== 1. Install the TCK, run $ ./localbin/cleanbuild 2. Set-up the TCK: 2.1 modify the tck/default.props file. This file contains the basic paths to the VM and SCJ lib that should be tested by this TCK. The file structure is: VM_HOME="path/to/VM/dir" SCJ="/path/to/scj.jar" JAVAC="javac to compile the TCK" TCK="name of the Makefile.Test or an alternative Makefile.Test file" Modify the file according to your needs. TCK : Running =================== The TCK is specified in the "Makefile.Test". Run the TCK: $ make check The users can also run the TCK only for a specific SCJ level: $ make check-level0 or $ make check-level1 or $ make check-level2 To "recall" the results of the last TCK run, execute: $ make recall More Structure of the TCK ============================= We structure the TCK as follows: tck/ tests/ level0/ Test1/ build/ src/ Test1.java // the Safelet *.java output.out Test2/ ... level1/ ... level2/ ... The following rules should be respected when adding new test-cases: - test cases are divided into levels, - each subdirectory of a level* dir represents one test case, - the test case's name is defined by the subdirectory containting the testcase, the name of the Safelet java file is the same as the name of the safelet. - each test-case dir has: a src/ dir - each test-case contains an "output.out" file specifying the expected output TCK distribution dir/ structure =============================== tck/ build/ // build dir containting temporary files during the TCK checking tests/ // contains the TCK test-cases localbin/ // contains scripts for installation of the TCK and the "test-make" tool README // this readme file RealMakefile.in Makefile.in Makefile.Test // default file specifying the TCK test-cases default.props // default file specifying the VM and SCJ lib to be tested agains. install-sh configure.ac Further, the following files are generated after installation: tck/ localbin/testmake Makefile RealMakefile config.status config.log tester-output.conf depend.mk configure/ TCK Harness tool ================================= A harness tool "test-make" is distributed with the TCK (it is pulled from its reposity during the installation of the TCK.). The tool is responsible for running the test cases, storing the results of a TCK run and reporting the results. A dedicated file called "Makefile.Test" is used to specify the compilation and running parameters of the test-cases. The harness tool parses this file and executes the test-cases according to its content. The "Makefile.Test" is given in a form very similar to a Makefile: TestCase1: dependency1 dependency2 $(JAVAC) -cp $(VM)/lib/scj.jar tests/level0/TestCase1/src/*.java -d tests/level0/TestCase1/build $(JAVA) -cp tests/level0/TestCase1/build tests/level0/TestCase1/TestCase1 > output.out diff build/output.out expected-output.out The user is allowed to modify the Makefile.Test, add new test-cases and change to parameters of the existing test-cases. Further, user can provide an alternative TCK file: To provide an alternative TCK file, modify the TCK variable in the default.props file and run: $ make check - by overriding the TCK variable, we can provide an alternative TCK definition that will be used instead of the default "Makefile.Test". Summary: The "test-make" tool allows users to: - easily add/remove tests, change compilation/run parameters for each test (an additional script could be provided to automatically add new test-cases), - reuse the same "Makefile.Test" for different platforms. More Info ============================================================= Se JSR-302 Home Page: http://www.jcp.org/en/jsr/detail?id=302 See the oSCJ webpage: http://www.ovmj.net/oscj/ TCK project code repository: [email protected]:aplsek/tck-jsr302.git
About
TCK for Safety-Critical Java (JSR-302)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published