caneka

A programming langauge for streams and lifecycles

=

Suite: Caneka

Caneka Tests run 1731616957 (Thu Nov 14 14:42:37 CST 2024)
commit 846d219abf20f5b3b7202477703927fcd4289b02

pass:33 fail:1

Basic Features

Core feature complete

Initializing core system tests

String feature complete

Tests for the basic string object and convienience features

  1. Expect string to have fixed type TYPE_STRING_FIXED found TYPE_STRING_FIXED
  2. Expect string length of 2 found 2
  3. Expect string match of 'Hi' found 'Hi'
  4. Expect string to have chain type TYPE_STRING_CHAIN found TYPE_STRING_CHAIN
  5. Expect string length of 3396 found 3396
  6. Expect string match of long string
  7. Expect for int value 35072 length of 5 found 5
  8. Expect string match of int of 35072 to string
  9. Expect length 271, have 271
  10. Expect string match of 'GET /path.html HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8 ' to be TRUE
Span feature complete

Span is the basic data structure for sequential or logorithmic storage access.

  1. Span has type span TYPE_SPAN found TYPE_SPAN
  2. Span item 0 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  3. String 1 equals Hello there found Hello there
  4. Span item 2 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  5. String 3 equals Three found Three
  6. Span item 6 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  7. String 7 equals Seven found Seven
  8. Span item 7 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  9. String 8 equals Eight found Eight
  10. After expand, Span item 0 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  11. String 1 equals Hello there found Hello there
  12. After expand,Span item 2 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  13. String 3 equals Three found Three
  14. After expand,Span item 6 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  15. String 7 equals Seven found Seven
  16. After expand, Span item 7 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  17. String 8 equals Eight found Eight
  18. Span item 512 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  19. String 512 equals Five Twelve found Five Twelve
  20. Span item 4079 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  21. String 4079 equals Four Hundred Seventy Nine found Four Hundred Seventy Nine
  22. Span item 513 has type string TYPE_STRING_FIXED found TYPE_STRING_FIXED
  23. String 513 equals Five Thirteen found Five Thirteen
SpanSetup feature complete

This tests the setup for a variety of Span configurations.

  1. Span stride is 16, have 16
  2. Span idxStride is 16, have 16
  3. Span slab has allocated 128 bytes, have 128
  4. Span idxSlab has allocated 128 bytes, have 128
  5. Span needs 1 dims to index into 100, have 1
  6. Span only needs 2 dim to index into 2000, have 2
  7. Queue stride is 16, have 16
  8. Queue idxStride is 16, have 16
  9. Queue slab has allocated 256 bytes, have 256
  10. Queue idxSlab has allocated 256 bytes, have 256
  11. Queue needs 1 dims to index into 100, have 1
  12. Queue only needs 2 dim to index into 2000, have 2
  13. Mini stride is 4, have 4
  14. Mini idxStride is 16, have 16
  15. Mini slab has allocated 32 bytes, have 32
  16. Mini idxSlab has allocated 128 bytes, have 128
  17. Mini needs 2 dims to index into 100, have 2
  18. Mini only needs 3 dim to index into 2000, have 3
  19. SlabSpan stride is 512, have 512
  20. SlabSpan idxStride is 32, have 32
  21. SlabSpan slab has allocated 4096 bytes, have 4096
  22. SlabSpan idxSlab has allocated 512 bytes, have 512
  23. SlabSpan needs 0 dims to index into 100, have 0
  24. SlabSpan only needs 1 dim to index into 2000, have 1
SpanInline feature complete

Inline spans hold data directly in thier memory space, instead of storing pointers to data held elsewhere.

  1. Inline Span idx 0 match expected 12 have 12
  2. Inline Span idx 1 match expected 45 have 45
  3. Inline Span idx 45 match expected 72 have 72
SpanClone previously working

Clone a span

Hash feature complete

Tests for the Hash object which used for table storage and comparison of a few Polymorphic data types.

  1. Expected hash to equal 4291084750259606489, found: 4291084750259606489
Table feature complete

Auto-scaling hash-table built on top of the Span object and Hash object.

  1. Expect strings to not be NULL from key:Alpha
  2. Expect strings to equal Apples from key:Alpha found Apples
  3. Expect strings to not be NULL from key:Bravo
  4. Expect strings to equal Bandits from key:Bravo found Bandits
  5. Expect strings to not be NULL from key:Charlie
  6. Expect strings to equal Carrots from key:Charlie found Carrots
  7. Expect strings to not be NULL from key:Delta
  8. Expect strings to equal DeadMan from key:Delta found DeadMan
  9. Expect strings to not be NULL from key:Echo
  10. Expect strings to equal Elevator from key:Echo found Elevator
  11. Expect strings to not be NULL from key:Foxtrot
  12. Expect strings to equal Five Minutes from key:Foxtrot found Five Minutes
  13. Expect strings to not be NULL from key:Golf
  14. Expect strings to equal Gophers Are Cool from key:Golf found Gophers Are Cool
  15. Expect strings to not be NULL from key:Hotel
  16. Expect strings to equal Happy Go Lucky from key:Hotel found Happy Go Lucky
  17. Expect strings to not be NULL from key:India
  18. Expect strings to equal Idio-syncratic from key:India found Idio-syncratic
  19. Expect strings to not be NULL from key:Juliet
  20. Expect strings to equal Jockey Rider from key:Juliet found Jockey Rider
TableResize feature complete

Resize features of the auto-scaling hash-table.

  1. Expect strings to not be NULL from key:Alpha
  2. Expect strings to equal Apples from key:Alpha found Apples
  3. Expect strings to not be NULL from key:Bravo
  4. Expect strings to equal Bandits from key:Bravo found Bandits
  5. Expect strings to not be NULL from key:Charlie
  6. Expect strings to equal Carrots from key:Charlie found Carrots
  7. Expect strings to not be NULL from key:Delta
  8. Expect strings to equal DeadMan from key:Delta found DeadMan
  9. Expect strings to not be NULL from key:Echo
  10. Expect strings to equal Elevator from key:Echo found Elevator
  11. Expect strings to not be NULL from key:Foxtrot
  12. Expect strings to equal Five Minutes from key:Foxtrot found Five Minutes
  13. Expect strings to not be NULL from key:Golf
  14. Expect strings to equal Gophers Are Cool from key:Golf found Gophers Are Cool
  15. Expect strings to not be NULL from key:Hotel
  16. Expect strings to equal Happy Go Lucky from key:Hotel found Happy Go Lucky
  17. Expect strings to not be NULL from key:India
  18. Expect strings to equal Idio-syncratic from key:India found Idio-syncratic
  19. Expect strings to not be NULL from key:Juliet
  20. Expect strings to equal Jockey Rider from key:Juliet found Jockey Rider
  21. Expect strings to not be NULL from key:Kilo
  22. Expect strings to equal Kangaroo from key:Kilo found Kangaroo
  23. Expect strings to not be NULL from key:Lima
  24. Expect strings to equal Lefties from key:Lima found Lefties
  25. Expect strings to not be NULL from key:Mike
  26. Expect strings to equal Mangoes from key:Mike found Mangoes
  27. Expect strings to not be NULL from key:November
  28. Expect strings to equal Neighbourhood Villan from key:November found Neighbourhood Villan
  29. Expect strings to not be NULL from key:Oscar
  30. Expect strings to equal Oasis of Gems from key:Oscar found Oasis of Gems
  31. Expect strings to not be NULL from key:Pappa
  32. Expect strings to equal Pinapple Ham from key:Pappa found Pinapple Ham
  33. Expect strings to not be NULL from key:Quebec
  34. Expect strings to equal Quarterly Report from key:Quebec found Quarterly Report
  35. Expect strings to not be NULL from key:Romeo
  36. Expect strings to equal Rooty Tooty from key:Romeo found Rooty Tooty
  37. Expect strings to not be NULL from key:Sierra
  38. Expect strings to equal Stainless Steel from key:Sierra found Stainless Steel
TablePreKey feature complete

Testing the ability to add a key and value to a hash table and disperate, yet sequential, times.

  1. Expect SetKey and SetValue to effect the same entry: strings to not be NULL from key:'PreKey'
  2. Expect SetKey and SetValue to effect the same entry: strings to equal 'After Value' from key:'PreKey' found 'After Value'
Crypto previously working

Basic crypto tests including Sha256 and Salty.

Roebling Parser

Match feature complete

Character pattern matching system for the Roebling parser.

  1. Non match has unsuccessful state found MISS,
  2. Matching string has successful state found SUCCESS,
  3. Matched length of string, less termMatching, expected 14 have 14
MatchElastic feature complete

Elastic, (length undetermined) match testing for character patterns of the Roebling parser.

  1. Has PROCESSING status PROCESSING,
  2. On second pos, position is 0
  3. Tag -Stopped on the fourth character
  4. Tag -Found three chars
  5. Tag- Found SUCCESS have TRACKED/TERM_FOUND,SUCCESS,
  6. Tag -At end
  7. Att - Found four chars, count is 4
Roebling feature complete

Tests for the Roebling character pattern matching parser, with programmable hooks and capture ranges.

  1. Roebling has three match values loaded up
RoeblingRun feature complete

Run state variables for the Roebling parser.

  1. Match equals expected
  2. Content equals expected, have TWO
  3. Match Idx equals expected
  4. Roebling has state NEXT
  5. Roebling has captured the rest of the line, expected 'for the weekend', have 'for the weekend'
  6. Roebling has state NEXT
  7. Roebling has state SUCCESS
RoeblingMark feature complete

Mark and jump behavior tests for the Roebling parser.

  1. Content equals TWO, have TWO
  2. Roebling has state NEXT after 'TWO'
  3. Roebling has captured the rest of the line: 'for the weekend'
  4. Roebling has state NEXT after 'for the weekend'
  5. Content equals ONE, have ONE
  6. Roebling has state NEXT after 'ONE'
  7. Roebling has captured the rest of the line: 'for good measure'
  8. Roebling has state NEXT
  9. Content equals THREE, have THREE
  10. Roebling has state NEXT
  11. Roebling has captured the rest of the line: 'for all!'
  12. Roebling has state NEXT
  13. Roebling has state SUCCESS SUCCESS,
RoeblingStartSop feature complete

Pausable behavior for the Roebling parser, to be able to handle partial input, and resume when more input is added.

  1. Roebling has state SUCCESS, have 'SUCCESS,'

Roebling Parser Format Implementations

Oset partial feature

Oset serialization format tests (similar features to XML, JSON, or YAML).

  1. String equals expected, have 'there'
  2. Have wrapped I64
  3. Value of I64 matches, have 17
XML feature complete

Basic XML parsing implemented using the Roebling Parser

  1. Root node equals 'main' have 'main'
  2. Jump next to expected mark XML_ATTROUTE
  3. XmlCtx has state SUCCSS, have SUCCESS,
XMLNested feature complete

Nested XML parsing implemented using the Roebling Parser

  1. Attribute has name 'type', have 'type'
  2. Attribute Value to be 'root', have 'root'
  3. Jump set to XML_START
  4. Whitespace before tag added as body, have '\n '
  5. Expected att item: 'model', have 'model'
  6. Expected att value: 'fancy-pants', have 'foo'
  7. Expected att item: 'model', have 'baseline'
  8. Expected att value: 'fancy-pants', have 'fancy-pants'
  9. Expected body value: 'Gotta Get It!', have 'Gotta Get It!'
  10. NodeName is 'alpha', have 'alpha'
  11. Second NodeName is 'alpha', have 'alpha'
  12. XML has state success
XMLParser feature complete

Fully featured XML parsing implemented using the Roebling Parser

  1. XML has state success
  2. XML node has expected body, have 'The World is Upside Down!'
XML Templating previously working

XML templating for building web applications.

Http feature complete

HTTP protocol parsing using the Roebling Parser

  1. captureKey is as expected HTTP_METHOD, have 0/HTTP_METHOD
  2. Expected content 'GET', have 'GET'
  3. captureKey is as expected HTTP_PATH, have 1/HTTP_PATH
  4. Expected content '/path.html', have '/path.html'
  5. captureKey is as expected HTTP_PROTO, have 2/HTTP_PROTO
  6. Expected content 'HTTP/1.1', have 'HTTP/1.1'
  7. captureKey is as expected HTTP_HEADER, have 3/HTTP_HEADER
  8. Expected content 'Host', have 'Host'
  9. captureKey is as expected HTTP_HEADER_VALUE, have 4/HTTP_HEADER_VALUE
  10. Expected content 'localhost', have 'localhost'
  11. captureKey is as expected HTTP_HEADER, have 3/HTTP_HEADER
  12. Expected content 'User-Agent', have 'User-Agent'
  13. captureKey is as expected HTTP_HEADER_VALUE, have 4/HTTP_HEADER_VALUE
  14. Expected content 'Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0', have 'Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0'
  15. captureKey is as expected HTTP_HEADER, have 3/HTTP_HEADER
  16. Expected content 'Connection', have 'Connection'
  17. captureKey is as expected HTTP_HEADER_VALUE, have 4/HTTP_HEADER_VALUE
  18. Expected content 'keep-alive', have 'keep-alive'
  19. captureKey is as expected HTTP_HEADER, have 3/HTTP_HEADER
  20. Expected content 'Accept', have 'Accept'
  21. captureKey is as expected HTTP_HEADER_VALUE, have 4/HTTP_HEADER_VALUE
  22. Expected content 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8', have 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8'
  23. captureKey is as expected HTTP_END, have 5/HTTP_END
  24. Reached end of test captures, have 12
  25. Roebling HttpParser has state SUCCESS, have 'SUCCESS,'
Smtp not started

SMTP (email) format parsing with the Roebling parser.

SmtpSend not started

Email send flow tests with CycleServe and Roebling.

Queue and Schedular

Queue feature complete

Queue built on top of the Span storage architecture.

  1. six has replaed idx 1
  2. midwest has replaed idx 17
QueueNext feature complete

Queue iteration behaviour, built on top of the Span storage architecture.

  1. Expect queue to have 67 values, have 67
  2. Expect first item to be zero_s, have zero
  3. Expect second item to be one_s, have one
  4. Expect item 2 to be from all109_s(two), have two
  5. Expect item 3 to be from all109_s(three), have three
  6. Expect item 4 to be from all109_s(four), have four
  7. Expect item 5 to be from all109_s(five), have five
  8. Expect item 6 to be from all109_s(six), have six
  9. Expect item 7 to be from all109_s(seven), have seven
  10. Expect item 8 to be from all109_s(eight), have eight
  11. Expect item 9 to be from all109_s(nine), have nine
  12. Expect item 10 to be from all109_s(ten), have ten
  13. Expect item 11 to be from all109_s(eleven), have eleven
  14. Expect item 12 to be from all109_s(twelve), have twelve
  15. Expect item 13 to be from all109_s(thirteen), have thirteen
  16. Expect item 14 to be from all109_s(fourteen), have fourteen
  17. Expect item 15 to be from all109_s(fifteen), have fifteen
  18. Expect item 16 to be from all109_s(sixteen), have sixteen
  19. Expect item 17 to be from all109_s(seventeen), have seventeen
  20. Expect item 18 to be from all109_s(eighteen), have eighteen
  21. Expect item 19 to be from all109_s(nineteen), have nineteen
  22. Expect item 20 to be from all109_s(twenty), have twenty
  23. Expect item 21 to be from all109_s(twentyOne), have twentyOne
  24. Expect item 22 to be from all109_s(twentyTwo), have twentyTwo
  25. Expect item 23 to be from all109_s(twentyThree), have twentyThree
  26. Expect item 24 to be from all109_s(twentyFour), have twentyFour
  27. Expect item 25 to be from all109_s(twentyFive), have twentyFive
  28. Expect item 26 to be from all109_s(twentySix), have twentySix
  29. Expect item 27 to be from all109_s(twentySeven), have twentySeven
  30. Expect item 28 to be from all109_s(twentyEight), have twentyEight
  31. Expect item 29 to be from all109_s(twentyNine), have twentyNine
  32. Expect item 30 to be from all109_s(thirty), have thirty
  33. Expect item 31 to be from all109_s(thirtyOne), have thirtyOne
  34. Expect item 32 to be from all109_s(thirtyTwo), have thirtyTwo
  35. Expect item 33 to be from all109_s(thirtyThree), have thirtyThree
  36. Expect item 34 to be from all109_s(thirtyFour), have thirtyFour
  37. Expect item 35 to be from all109_s(thirtyFive), have thirtyFive
  38. Expect item 36 to be from all109_s(thirtySix), have thirtySix
  39. Expect item 37 to be from all109_s(thirtySeven), have thirtySeven
  40. Expect item 38 to be from all109_s(thirtyEight), have thirtyEight
  41. Expect item 39 to be from all109_s(thirtyNine), have thirtyNine
  42. Expect item 40 to be from all109_s(fourty), have fourty
  43. Expect item 41 to be from all109_s(fourtyOne), have fourtyOne
  44. Expect item 42 to be from all109_s(fourtyTwo), have fourtyTwo
  45. Expect item 43 to be from all109_s(fourtyThree), have fourtyThree
  46. Expect item 44 to be from all109_s(fourtyFour), have fourtyFour
  47. Expect item 45 to be from all109_s(fourtyFive), have fourtyFive
  48. Expect item 46 to be from all109_s(fourtySix), have fourtySix
  49. Expect item 47 to be from all109_s(fourtySeven), have fourtySeven
  50. Expect item 48 to be from all109_s(fourtyEight), have fourtyEight
  51. Expect item 49 to be from all109_s(fourtyNine), have fourtyNine
  52. Expect item 50 to be from all109_s(fifty), have fifty
  53. Expect item 51 to be from all109_s(fiftyOne), have fiftyOne
  54. Expect item 52 to be from all109_s(fiftyTwo), have fiftyTwo
  55. Expect item 53 to be from all109_s(fiftyThree), have fiftyThree
  56. Expect item 54 to be from all109_s(fiftyFour), have fiftyFour
  57. Expect item 55 to be from all109_s(fiftyFive), have fiftyFive
  58. Expect item 56 to be from all109_s(fiftySix), have fiftySix
  59. Expect item 57 to be from all109_s(fiftySeven), have fiftySeven
  60. Expect item 58 to be from all109_s(fiftyEight), have fiftyEight
  61. Expect item 59 to be from all109_s(fiftyNine), have fiftyNine
  62. Expect item 60 to be from all109_s(sixty), have sixty
  63. Expect item 61 to be from all109_s(sixtyOne), have sixtyOne
  64. Expect item 62 to be from all109_s(sixtyTwo), have sixtyTwo
  65. Expect item 63 to be from all109_s(sixtyThree), have sixtyThree
  66. Expect item 64 to be from all109_s(sixtyFour), have sixtyFour
  67. Expect item 65 to be from all109_s(sixtyFive), have sixtyFive
  68. Expect item 66 to be from all109_s(sixtySix), have sixtySix
  69. Expect i to have reached the max, have 67
QueueMixed feature complete

Queue iteration with a mix of items missing, built on top of the Span storage architecture.

  1. Expect queue to have 8 values, have 36
  2. Expect queue to have 23 values, have 23
  3. Expect item 0 to be from all109_s(zero), have zero
  4. Expect item 1 to be from all109_s(one), have one
  5. Expect item 2 to be from all109_s(two), have two
  6. Expect item 3 to be from all109_s(three), have three
  7. Expect item 4 to be from all109_s(four), have four
  8. Expect item 5 to be from all109_s(five), have five
  9. Expect item 6 to be from all109_s(six), have six
  10. Expect item 7 to be from all109_s(seven), have seven
  11. Expect item 21 to be from all109_s(twentyOne), have twentyOne
  12. Expect item 22 to be from all109_s(twentyTwo), have twentyTwo
  13. Expect item 23 to be from all109_s(twentyThree), have twentyThree
  14. Expect item 24 to be from all109_s(twentyFour), have twentyFour
  15. Expect item 25 to be from all109_s(twentyFive), have twentyFive
  16. Expect item 26 to be from all109_s(twentySix), have twentySix
  17. Expect item 27 to be from all109_s(twentySeven), have twentySeven
  18. Expect item 28 to be from all109_s(twentyEight), have twentyEight
  19. Expect item 29 to be from all109_s(twentyNine), have twentyNine
  20. Expect item 30 to be from all109_s(thirty), have thirty
  21. Expect item 31 to be from all109_s(thirtyOne), have thirtyOne
  22. Expect item 32 to be from all109_s(thirtyTwo), have thirtyTwo
  23. Expect item 33 to be from all109_s(thirtyThree), have thirtyThree
  24. Expect item 34 to be from all109_s(thirtyFour), have thirtyFour
  25. Expect item 35 to be from all109_s(thirtyFive), have thirtyFive
  26. Expect i to have reached the max, have 23

CycleServe Network Server

Serve feature complete

Basic CycleServe network server initialization tests.

ServeHandle feature complete

CycleServe network server request handling tests.

Serve feature complete

Basic CycleServe network server initialization tests.

ServeHandle feature complete

CycleServe network server request handling tests.

  1. active Req is not null
  2. Req has the first handler set
  3. Req has the second handler set
  4. Req Roebling has status of SUCCESS, have SUCCESS,
  5. Proc 4393 existed with status 0
ServeChunked feature complete

Chunked request (partial HTTP request sent in different requests) for CycleServe network server tests.

  1. active Req is not null
  2. Req has the first handler set
  3. Req has the second handler set
  4. Req Roebling does not have state SUCCESS yet, have PROCESSING,
  5. Req Roebling has status of SUCCESS, have SUCCESS,
ServeMultiple feature complete

Concurrent request testing for CycleServe network server.

  1. Multiple count of 22 currently open, have 22
  2. All processes closed, count of 0 currently open, have 0
  3. Served all count of 22 requests, have 22
ServeCookieSession previously working

Tests to use Roebling to open a session based on an HTTP Cookie Header using IoCtx and Crypto.

ServeScheduled not started

Regularly scheduled activities in CycleServe using the Queue object.

Persistance and File Handling

IoCtx partial feature

File and storage persistance context tests.

  1. dir exists /mnt/basic/caneka/tmp/one
  2. file length match, have 29
  3. String content matches, have: 'Test content here is a thing '
  4. dir destroyed /mnt/basic/caneka/tmp/one
MemLocal partial feature

Persisting a combination of Table, Span, and MemCtx to disk and back for use in IO Contextx.

  1. Retrieved string equals, even though it was saved with local coords, have 'Hidy Ho!'
  2. Retrieved from re-awakened MemLocal, string equals, even though it was saved with local coords, have 'Hidy Ho!'
PasswordFlow not started

A Basic user password flow using CycleServe and IoCtx