From: Podrezov, Valery A
Sent: Friday, April 22, 2005 6:17 PM
To: Brown, Len
Cc: Moore, Robert; Khartikov, Denis M; Suietov, Fiodor F
Subject: Remaining work
Attachments: operators_have_no_separate_tests

Remained work,

the time and priority of work estimation.

We are open for discussion.

Thanks

PRIORITIES OF TESTS

0 highest, important for correct and effective work

1 verified functionality is not of high importance

2 mostly verified by other tests

3 verifying of not "standard" features

4 (bit fields of operation region) looks very important,

but hardware dependent and insufficiently specified for

to be verified; it is not clear from the specification

which actions and the relevant reactions we can operate

to verify this functionality; thus, it looks that only

low range of functionality can actually be there verified;

we can spend much time on trying to find out the grains

of hardware independent features capable for testing

but obtain the low effect in result.

To continue our efforts in this direction

we have to obtain clear information of the

features (expected actions & reactions) and

the information which of them are actually

supported by AcpiExec.

NO omit testing at all, impossible to verify

in our test suite

SUMMARY TIME ESTIMATION (in weeks for one person)

TIME(priority): <time/person>

1. TIME(2): 1 week/person

2. TIME(1): 1 hour/person

3. TIME(1): 1 day/person

4. TIME(3): 1 week/person

5. TIME(0): 1 week/person

6. TIME(0): 3 days/person

7. TIME(4): find difficulty in time estimation

8. TIME(NO): 0

9. TIME(0): 4 weeks/person (at least)

10. TIME(0): 4 weeks/person

11. TIME(0): 2 weeks/person

12. TIME(0): 3 weeks/person

13. TIME(0): 1 week/person

14. TIME(2): 1 week/person

15. TIME(3): 1 week/person

16. TIME(3): 1 week/person

17. TIME(3): 1 week/person

18. TIME(3): 2 days/person

Summary Time by priorities (in weeks for one person):

Priority 0: 16 weeks/person

Priority 1: 1 week/person

Priority 2: 2 weeks/person

Priority 3: 5 weeks/person

Priority 4: XXX

Time of test design/implementing depends on:

1) the considerable part of time is usually spent on

clarification of the actually expected behaviour of

the subject of testing.

2) fixing of current bugs is an actually essential point

in designing and implementing the tests. It allows more

deep and more quick implementation of the tests. Basing

on the current set of correct functionality we feel the

product by our tests more and more deeply. The current

bugs forces us to comment parts of tests, stop implementing

the new parts of tests based on the features which work

improperly.

DETAILS

* ====================================================== *

* A. Functional tests for particular ASL operators *

* ====================================================== *

1. TIME(2): 1 week/person

Do simplest separate test for each of these operators

which will be locations for further possible additions

(see e-mail RE:Planning ACPICA validation 19.11.2004,

304_simple_tests attachment for more details)

a) intensively applied in other tests and thus

might be considered being already verified

ArgX

LocalX

Name

Integer

String

Buffer

Store

CopyObject

b) will be verified comprehensively

in the new Name Space Complex test

Scope

Device

Processor

ThermalZone

PowerResource

2. TIME(1): 1 hour/person

Do simplest test, check only that execution

of this operator doesn't produce exception.

It is of low importance but doesn't require much time.

(see operators_have_no_separate_tests for more information)

NoOp

3. TIME(1): 1 day/person

Do the simple test, but not comprehensive

(see operators_have_no_separate_tests for more information)

Alias

4. TIME(3): 1 week/person

The test of "implicit return".

Implement the slack-mode test suite run,

and the test of "implicit return".

Add the relevant comment in README.

Return

5. TIME(0): 1 week/person

The functional test Return.

1. All different type declaration of Return.

2. Return different type objects.

3. Return references to different type objects.

4. Return Index references to elements of String,

Buffer and Package.

5. Return from different critical points of

the Method execution control operations:

If,ElseIf,Else,While,Switch,Case,Default.

Return

6. TIME(0): 3 days/person

Verify all assertions given in 17.5.49,

17.5.75 and 5.5.2 of ACPI specification.

Method

Function

7. TIME(4): find difficulty in time estimation

Bit fields complex test.

Very important, but looks hardware dependent

and insufficiently specified for to be verified.

Depends on particularities emulated by AcpiExec.

Looks that the tests will mostly verify emulation

(if any) of hardware which task is not important

as such, and it (emulation) may even be not provided

at all.

The ACPI specification is not sufficient to

understand which actions we can perform and

which reactions we should expect for those

actions.

It is not clear, which of these actions and reactions

are hardware dependent and, thus, could not be verified

in our test suite and which actions and reactions are

emulated and thus can be verified in our test suite.

Field

BankField

IndexField

OperationRegion

Offset

AccessAs

8. TIME(NO): 0

Omit testing at all, impossible to verify

in our test suite.

(see operators_have_no_separate_tests for more information)

Debug

Include

Fatal

Notify

Load

Unload

External

LoadTable

BreakPoint

DefinitionBlock

DataTableRegion

* ====================== *

* B. Complex tests *

* ====================== *

9. TIME(0): 4 weeks/person (at least)

The name space complex test.

Important.

Check the proper read and write access to the

objects in the namespace hierarchy generated by

the operators which open the new name scopes:

Scope

Device

Processor

ThermalZone

PowerResource

Method

Function

DefinitionBlock

These will be a group of sub-tests which will be

generating the different hierarchies of different

type objects (opening the new name scopes) and do

read and write operations in the critical points

passing them with the operands by all the possible

ways (mean absolute name, parent relative name,

current scope relative name, simple (search rules

apply) name, by reference, by alias, etc..) and

verify the obtained values.

From different nodes of the tree do access

(write/read) to different objects of other

nodes of the tree.

(see e-mail RE:Planning ACPICA validation 19.11.2004,

312_path_name attachment for more details)

10. TIME(0): 4 weeks/person

The declaration complex test.

Important and don't clear from ACPI specs.

The ACPICA allows an arbitrary place of different

declarations. Nevertheless, this causes some warnings,

crashes and other issues. This should be clarified and

verified.

(see e-mail RE:Planning ACPICA validation 19.11.2004,

311_test_names_accessibility attachment

for more details)

Addition feature: check that names declared by

Method are dead after the Method completion.

11. TIME(0): 2 weeks/person

Dynamic object deletion complex test.

Important for interpreter effective work.

To implement the "ACPICA extension",

a set of common ASL Methods to verify

the obtained memory consumption statistics

and the base set of the relevant ASL tests.

THE TESTS IN PROGRESS

12. TIME(0): 3 weeks/person

Complex test of references.

Verify all the aspects of access by

Object and Index references.

Remained to do:

a) Specify about 10 new sub-tests which now are

designated only. The total amount of sub-tests

will be then about 90.

b) Report the current bugs which are revealed

by the current state of test.

c) Wait for discussing and fixing current bugs.

After that implement the remained sub-tests.

Before that do something of scheduled.

Implemented for now are 60 sub-tests.

d) The reference beheviour is estimated on

ACPI compliance, legacy and sufficiency,

convenience and predictability.

e) Report remarks about the free and wide use of

"reference" word in ACPI specification which

produces the real mistakes and contradictions

of ACPI specification.

13. TIME(0): 1 week/person

Functional test of Match operator.

Functional test of Switch/Case/Default operators.

Update of these tests started after change of the

Match operator (bug 88) has not yet been completed.

THE TESTS REQUIRE UPDATE

The tests which don’t conform to the new

changed ACPI specification.

14. TIME(2): 1 week/person

Some tests were broken after the change of

functionality of Store operator (started with

e-mail "Behavior of Store() ASL operator").

Tests:

aslts/src/runtime/collections/complex/result/tests/rconversion

aslts/src/runtime/collections/complex/operand/tests/oconversion

REVIEW ACPICA AGAINST ASLTS

15. TIME(3): 1 week/person

Review the state of ACPICA against the

tests suite and prepare summary of bugs.

PREPARE THE SECOND RELEASE OF TEST SUITE

(see e-mail RE:Planning ACPICA validation 19.11.2004,

200_prepare_version and 201_cosmetic_update

attachments)

16. TIME(3): 1 week/person

Clean up code, remove the working comments.

Prepare files commented "in progress".

Comment the particular tests.

Do READMEs and HOW_TO_* files up to date and prepare some new.

17. TIME(3): 1 week/person

Prepare the test suite description.

NEW ADDITIONAL TESTS AND IMPROVEMENTS

18. TIME(3): 2 days/person

Describe all the thoughts of possible

improvement and new additional tests

and put it with the test suite.

-end