Skip to content

aplsek/tck-jsr302

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

No packages published