-
Notifications
You must be signed in to change notification settings - Fork 4
Test Plan
Nick Zavaritsky edited this page Jun 3, 2016
·
1 revision
- Public API — basic tests to ensure that functions perform as advertized (incl. invalid input)
create
validate
is
are_compatible
-
compile
1.flatten
2.unflatten
3.xflatten
4.flatten_msgpack
5.unflatten_msgpack
6.xflatten_msgpack
export
get_names
get_types
- Frontend
- Schema definition is loaded — AVRO types, aliases, namespaces, defaults, incl. errors
1. Basic types —
null
,int
,long
,float
,double
,string
andbytes
2.array
3.map
4.record
5.fixed
6.enum
7.union
8. namespace handling 9. defaults - Data validated correctly against the schema
- For each AVRO data type check that validation works.
- Ensure that missing fields are substituted with defaults.
- Mapping different schema versions work
1. basic types
2. type promotions
3. containers —
array
,map
4.record
-s 5.fixed
, matched and mismatched length 6.enums
7.unions
— complex rules - IL Codegen — generated code yields expected results
flatten
unflatten
xflatten
- Optimizer — transformations are correct
- Service Fields
- known SF types are accepted by
compile
, generated code behaves as expected - unknown SF types rejected by
compile
- some tests for multiple SF-s in
[ux]?flatten
- same but when input and output schemas are different
- invalid data types in tuple at cells corresponding to SF-s are rejected
-
Hash Collision —
STRSWITCH
falls back properly when names yield a collision - Runtime
-
universal_decode
—[ux]?flatten
are omnivorous, excercise all possibilities -
msgpack
encoder and decoder routines — can we use msgpuck tests? - invalid msgpack input — currently segfaults
- buffer correctly grown — test with progressively larger arrays up to, say, 10MBs
- error messages on data validation errors are nice and include location info
- simulate malloc failures