Task #5670
closedExamples of test templates using memory-related test situations (hit, miss)
90%
Description
Examples must be created an published.
Updated by Alexander Kamkin over 9 years ago
- Subject changed from [template][docs] Examples of test templates using memory-related test situations (hit, miss) to Examples of test templates using memory-related test situations (hit, miss)
- Category set to 58
- Assignee set to Alexander Kamkin
- Target version set to 2.3
Updated by Alexander Kamkin over 9 years ago
- Priority changed from Urgent to Normal
Updated by Alexander Kamkin over 9 years ago
Samples having been discussed earlier.
Specification of a particular test case in terms of MMU-related events (hits/misses, control bits, exceptions, etc.). E.g. (the syntax is approximate) :
block { sb a0, s0 do situation(‘mmu’, :execution => [hit(‘DTLB’, equal(‘D’, 0))]) sb a1, s1 do situation(‘mmu’, :execution => [miss(‘DTLB’), hit(‘JTLB’, equal(‘V’, 1)), hit(‘L1’)]) }
Specification of a family of test cases; the goal is to generate all possible execution paths and dependencies for instruction sequences of the specified length. E.g. (the syntax is approximate):
block (:engine => ‘mmu’, :length => 2) { sb a0, s0 sb a1, s1 lb a2, s2 lb a3, s3 }
Updated by Andrei Tatarnikov about 9 years ago
- % Done changed from 0 to 10
r5417 - Classes for MMU-related constraints: BufferEventConstraint and MemoryAccessConstraints
r5419 - Builder for MemoryAccessConstraints
r5420 - ConstraintBuilder - class for building memory-related test situations from test templates
r5421 - MMU Test Templates: ConstraintBuilder supports Variate
r5422 - Ruby methods for MMU constraints (stubs)
r5424 - Support for defining memory-related constraints to be used in situations
r5425 - Packing primitive constraints (e.g. eg, hit, miss) into MemoryAccessConstraints
r5426 - Simplified SituationBuilder (now inner class of Situation) to relax type checks on attribute types
Updated by Andrei Tatarnikov about 9 years ago
- % Done changed from 50 to 90
Implementation is done. Ruby code will look like this:
simple_dist = dist(range(:value => 0, :bias => 50),
range(:value => 1..3, :bias => 25),
range(:value => [5, 7], :bias => 25))
lw s0, 0, t0 do situation('access',
:path => constraints(eq('L1.V', 0), hit('L1'))) end
lw s0, 0, t0 do situation('access',
:path => constraints(eq('L1.V', [0, 2]), hit('L1'))) end
lw s1, 0, t1 do situation('access',
:path => constraints(eq('L1.V', 0..3), miss('L1'))) end
lw s0, 0, t0 do situation('access',
:path => constraints(eq('L1.V', simple_dist), hit('L1'))) end
lw s1, 0, t1 do situation('access',
:path => constraints(eq('L1.V', 0), event('L1', :hit => 50, :miss => 50))) end
Updated by Andrei Tatarnikov about 8 years ago
- Status changed from Open to Closed