Project

General

Profile

MicroTESK 2.2.0 alpha released

New minor version MicroTESK 2.2.0 alpha has been released.
Added by Andrei Tatarnikov about 9 years ago

The new minor version of MicroTESK contains the following new features and changes:

  • Support for automated extraction of coverage information that allows building constraints for named paths in instruction control flow (*)
  • Possibility to process test templates in a stream manner (block by block), which allows processing larger test templates
  • The trace method of the test template language now accepts objects created by the rand method
  • Several minor bug fixes and general improvements

The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files

What's new (*):

Coverage Information Extraction

The main feature of the new release is extraction of test situations for named paths in the instruction control flow. Test situations are described as constraints on input parameters which should be satisfied in order to cause execution of a specific path. Test data is generated by solving the constraints specified in a test template.

Paths can be marked in ISA specifications using the mark function. For example, here is a part of the miniMIPS ADD instruction specification where two possible execution paths are marked as normal and overflow:

op add (rd: REG, rs: REG, rt: REG)
  syntax = format("add %s, %s, %s", rd.syntax, rs.syntax, rt.syntax)
  image = format("000000%s%s%s00000100000", rs.image, rt.image, rd.image)
  action = {
    temp = rs<31>::rs + rt<31>::rt;
    if temp<32> != temp<31> then
      mark("overflow");
      exception("IntegerOverflow");
    else
      mark("normal");
      rd = temp<31..0>;
    endif;
  }

Test situations to be covered by tests are specified in test templates using the name of the instruction and the name of the path. For example:

add t0, t1, t2 do situation('add.overflow') end
add t3, t4, t5 do situation('add.normal') end

NOTE: To generate test data based on constraints, MicroTESK requires the Z3 solver to be installed. See Installation Guide for more information.


Comments