Skip to content

Test Plan

Nick Zavaritsky edited this page Jun 3, 2016 · 1 revision

Test Plan

  1. Public API — basic tests to ensure that functions perform as advertized (incl. invalid input)
  2. create
  3. validate
  4. is
  5. are_compatible
  6. compile 1. flatten 2. unflatten 3. xflatten 4. flatten_msgpack 5. unflatten_msgpack 6. xflatten_msgpack
  7. export
  8. get_names
  9. get_types
  10. Frontend
  11. Schema definition is loaded — AVRO types, aliases, namespaces, defaults, incl. errors 1. Basic types — null, int, long, float, double, string and bytes 2. array 3. map 4. record 5. fixed 6. enum 7. union 8. namespace handling 9. defaults
  12. Data validated correctly against the schema
    • For each AVRO data type check that validation works.
    • Ensure that missing fields are substituted with defaults.
  13. 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
  14. IL Codegen — generated code yields expected results
  15. flatten
  16. unflatten
  17. xflatten
  18. Optimizer — transformations are correct
  19. Service Fields
  20. known SF types are accepted by compile, generated code behaves as expected
  21. unknown SF types rejected by compile
  22. some tests for multiple SF-s in [ux]?flatten
  23. same but when input and output schemas are different
  24. invalid data types in tuple at cells corresponding to SF-s are rejected
  25. Hash CollisionSTRSWITCH falls back properly when names yield a collision
  26. Runtime
  27. universal_decode[ux]?flatten are omnivorous, excercise all possibilities
  28. msgpack encoder and decoder routines — can we use msgpuck tests?
  29. invalid msgpack input — currently segfaults
  30. buffer correctly grown — test with progressively larger arrays up to, say, 10MBs
  31. error messages on data validation errors are nice and include location info
  32. simulate malloc failures
Clone this wiki locally