diff --git a/tests/asserts.svg b/tests/asserts.svg
index 3c29f2c2..13547f55 100644
--- a/tests/asserts.svg
+++ b/tests/asserts.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/tests/autoTestAll.md b/tests/autoTestAll.md
index ffa71c30..8992c589 100644
--- a/tests/autoTestAll.md
+++ b/tests/autoTestAll.md
@@ -2,205 +2,241 @@
## Summary
-* Number of tests performed: 194
-* Number of tests passed: 194
-* Number of tests failed: 0
-* Number of asserts: 615
+* Number of tests performed: 230
+* Number of tests passed: 218
+* Number of tests failed: 12
+* Number of asserts: 777
## Result details
| Suite | Test | Status | Time | Result |
|-------|------|--------|------|--------------|
-|AI | LSTM AND | PASS | 153 ms | n/a |
-|AI | LSTM network save and load | PASS | 179 ms | n/a |
-|AI | Liquid XOR | PASS | 360 ms | n/a |
-|AI | Liquid network save and load | PASS | 342 ms | n/a |
+|AI | Anthropic prompt caching body and stats | PASS | 8 ms | n/a |
+|AI | Anthropic prompt caching headers | FAIL | 146 ms | TypeError: Cannot read property "requestHeaders" from undefined |
+|AI | GPT prompt argument routing | FAIL | 10 ms | Problem routing GPT rawPromptStream wrapper arguments. (got [ "hello", "gpt-test", 0.4, false, [ { "type": "function", "function": { "name": "echo" } } ], null ] but expected ["hello","gpt-test",0.4,false,[{"type":"function","function":{"name":"echo"}}],null]) |
+|AI | LSTM AND | PASS | 201 ms | n/a |
+|AI | LSTM network save and load | PASS | 143 ms | n/a |
+|AI | Liquid XOR | PASS | 363 ms | n/a |
+|AI | Liquid network save and load | PASS | 350 ms | n/a |
|AI | Normalize features array | PASS | 1 ms | n/a |
-|AI | Normalize with schema | PASS | 10 ms | n/a |
-|AI | Perceptron XOR | PASS | 709 ms | n/a |
-|AI | Perceptron XOR Put | PASS | 6 seconds, 829 ms | n/a |
-|AI | Perceptron XOR save and load | PASS | 47 ms | n/a |
-|AI | Perceptron network save and load | PASS | 36 ms | n/a |
-|AI | Test C45 | PASS | 29 ms | n/a |
-|AI | Test ID3 | PASS | 59 ms | n/a |
-|AI | Test KMeans | PASS | 14 ms | n/a |
-|CSV | Generic CSV | PASS | 3 ms | n/a |
-|CSV | Stream CSV | PASS | 23 ms | n/a |
-|CSV | ToFrom CSV | PASS | 12 ms | n/a |
+|AI | Normalize with schema | PASS | 6 ms | n/a |
+|AI | Ollama streaming tool execution and ids | FAIL | 17 ms | Problem preserving Ollama streaming tool result id. (got undefined but expected "call-3") |
+|AI | Ollama streaming warmup on fresh conversation | FAIL | 3 ms | Problem preserving Ollama streaming deltas after warmup. (got [] but expected ["part-1","part-2"]) |
+|AI | OpenAI export conversation falls back to tool name | PASS | 4 ms | n/a |
+|AI | OpenAI stats capture includes cached and reasoning | PASS | 6 ms | n/a |
+|AI | OpenAI streaming tool recursion without duplication | PASS | 18 ms | n/a |
+|AI | OpenAI tool recursion without duplication | PASS | 6 ms | n/a |
+|AI | OpenAI transport modes | PASS | 11 ms | n/a |
+|AI | Perceptron XOR | PASS | 394 ms | n/a |
+|AI | Perceptron XOR Put | PASS | 6 seconds, 717 ms | n/a |
+|AI | Perceptron XOR save and load | PASS | 44 ms | n/a |
+|AI | Perceptron network save and load | PASS | 41 ms | n/a |
+|AI | Test C45 | PASS | 25 ms | n/a |
+|AI | Test ID3 | PASS | 55 ms | n/a |
+|AI | Test KMeans | PASS | 13 ms | n/a |
+|CSV | Generic CSV | PASS | 2 ms | n/a |
+|CSV | Stream CSV | PASS | 14 ms | n/a |
+|CSV | ToFrom CSV | PASS | 17 ms | n/a |
|Channels | Keep history util | PASS | 4 seconds, 6 ms | n/a |
-|Channels | Remote channel access auditing | PASS | 256 ms | n/a |
-|Channels | Subscribers test | PASS | 731 ms | n/a |
+|Channels | Remote channel access auditing | PASS | 191 ms | n/a |
+|Channels | Subscribers test | PASS | 594 ms | n/a |
|Channels | Test Elastic Index | PASS | 1 ms | n/a |
-|Channels | Test MVS Utils | PASS | 74 ms | n/a |
-|Channels | Test channel (all) | PASS | 14 ms | n/a |
+|Channels | Test MVS Utils | PASS | 62 ms | n/a |
+|Channels | Test channel (all) | PASS | 19 ms | n/a |
|Channels | Test channel (big) | PASS | 1 ms | n/a |
-|Channels | Test channel (big) | PASS | 22 ms | n/a |
-|Channels | Test channel (big) | PASS | 235 ms | n/a |
+|Channels | Test channel (big) | PASS | 15 ms | n/a |
+|Channels | Test channel (big) | PASS | 190 ms | n/a |
|Channels | Test channel (big) | PASS | ~0 ms | n/a |
-|Channels | Test channel (big) | PASS | 32 seconds, 7 ms | n/a |
-|Channels | Test channel (cache) | PASS | 2 ms | n/a |
-|Channels | Test channel (cache) | PASS | 1 ms | n/a |
-|Channels | Test channel (cache) | PASS | 32 seconds, 12 ms | n/a |
+|Channels | Test channel (big) | PASS | 32 seconds, 5 ms | n/a |
+|Channels | Test channel (cache) | PASS | ~0 ms | n/a |
+|Channels | Test channel (cache) | PASS | ~0 ms | n/a |
+|Channels | Test channel (cache) | PASS | 32 seconds, 4 ms | n/a |
|Channels | Test channel (file) | PASS | 4 ms | n/a |
-|Channels | Test channel (file) | PASS | 19 ms | n/a |
-|Channels | Test channel (file) | PASS | 185 ms | n/a |
+|Channels | Test channel (file) | PASS | 12 ms | n/a |
+|Channels | Test channel (file) | PASS | 174 ms | n/a |
|Channels | Test channel (file) | PASS | ~0 ms | n/a |
-|Channels | Test channel (file) | PASS | 32 seconds, 4 ms | n/a |
+|Channels | Test channel (file) | PASS | 32 seconds, 5 ms | n/a |
|Channels | Test channel (mvs) | PASS | 1 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 9 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 109 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 1 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 32 seconds, 4 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 8 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 128 ms | n/a |
+|Channels | Test channel (mvs) | PASS | ~0 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 32 seconds, 8 ms | n/a |
|Channels | Test channel (simple) | PASS | ~0 ms | n/a |
|Channels | Test channel (simple) | PASS | 4 ms | n/a |
-|Channels | Test channel (simple) | PASS | 93 ms | n/a |
+|Channels | Test channel (simple) | PASS | 102 ms | n/a |
|Channels | Test channel (simple) | PASS | ~0 ms | n/a |
-|Channels | Test channel (simple) | PASS | 32 seconds, 5 ms | n/a |
-|DB | DB type conversion to JS | PASS | 7 ms | n/a |
-|DB | Simple DB in memory | PASS | 175 ms | n/a |
-|Format | Add number separator | PASS | 1 ms | n/a |
-|Format | Conversions | PASS | 6 ms | n/a |
+|Channels | Test channel (simple) | PASS | 32 seconds, 4 ms | n/a |
+|DB | DB type conversion to JS | PASS | 8 ms | n/a |
+|DB | Simple DB in memory | PASS | 153 ms | n/a |
+|Format | Add number separator | PASS | ~0 ms | n/a |
+|Format | Conversions | PASS | 5 ms | n/a |
|Format | Cron | PASS | 3 ms | n/a |
-|Format | Cron How Many Ago | PASS | 29 ms | n/a |
-|Format | Date diff | PASS | 5 ms | n/a |
-|Format | Date to/from | PASS | 2 ms | n/a |
+|Format | Cron How Many Ago | PASS | 28 ms | n/a |
+|Format | Date diff | PASS | 4 ms | n/a |
+|Format | Date to/from | PASS | 10 ms | n/a |
|Format | Escape strings | PASS | 1 ms | n/a |
-|Format | Escape/Unescape HTML4 | PASS | 11 ms | n/a |
-|Format | Host | PASS | 3 ms | n/a |
+|Format | Escape/Unescape HTML4 | PASS | 8 ms | n/a |
+|Format | Grid | PASS | 79 ms | n/a |
+|Format | Host | PASS | 2 ms | n/a |
|Format | LDAP date to/from | PASS | ~0 ms | n/a |
-|Format | LSH | PASS | 591 ms | n/a |
+|Format | LSH | PASS | 594 ms | n/a |
|Format | Load Format | PASS | ~0 ms | n/a |
+|Format | Markdown wrap | PASS | 23 ms | n/a |
|Format | Number abbreviation | PASS | 1 ms | n/a |
-|Format | Number rounding | PASS | ~0 ms | n/a |
-|Format | SLON | PASS | 26 ms | n/a |
+|Format | Number rounding | PASS | 1 ms | n/a |
+|Format | Print bullet value formats | PASS | 19 ms | n/a |
+|Format | Print dashboard | FAIL | 11 ms | Problem with printDashboard total width. (got 38 but expected 40) |
+|Format | Print histogram | PASS | 9 ms | n/a |
+|Format | Print sparkline | PASS | 8 ms | n/a |
+|Format | PrintTable emoji alignment | PASS | 18 ms | n/a |
+|Format | PrintTable header alignment | FAIL | 9 ms | Problem with printTable header second separator alignment. (got 13 but expected 15) |
+|Format | PrintTable subdivision flag alignment | FAIL | 13 ms | Problem with printTable subdivision flag alignment. (got 23 but expected 13) |
+|Format | SLON | PASS | 18 ms | n/a |
|Format | String pad | PASS | ~0 ms | n/a |
+|Format | Terminal capabilities | PASS | 3 ms | n/a |
|Format | Time ago | PASS | 2 ms | n/a |
-|Format | TimeAbbreviation | PASS | 4 ms | n/a |
-|Format | Unix date to/from | PASS | 1 ms | n/a |
-|Format | Word wrap | PASS | 6 ms | n/a |
-|HTTP | HTTP changing user agent | PASS | 331 ms | n/a |
-|HTTP | HTTP plugin basic functionality | PASS | 53 ms | n/a |
-|HTTP | HTTP plugin test basic auth | PASS | 623 ms | n/a |
-|HTTP | HTTP plugin web socket client | PASS | 3 seconds, 680 ms | n/a |
-|IO | IO Test Gzip Native to Byte array | PASS | 28 ms | n/a |
+|Format | TimeAbbreviation | PASS | 3 ms | n/a |
+|Format | Unix date to/from | PASS | ~0 ms | n/a |
+|Format | Viz benchmark | PASS | 2 ms | n/a |
+|Format | Viz create canvas | PASS | 2 ms | n/a |
+|Format | Viz frame diff | PASS | 2 ms | n/a |
+|Format | Viz layout | PASS | 3 ms | n/a |
+|Format | Word wrap | PASS | 13 ms | n/a |
+|HTTP | HTTP changing user agent | PASS | 446 ms | n/a |
+|HTTP | HTTP plugin basic functionality | PASS | 55 ms | n/a |
+|HTTP | HTTP plugin test basic auth | PASS | 725 ms | n/a |
+|HTTP | HTTP plugin web socket client | PASS | 2 seconds, 727 ms | n/a |
+|IO | IO Test Gzip Native to Byte array | PASS | 23 ms | n/a |
|IO | IO Test JSON | PASS | 2 ms | n/a |
-|IO | IO Test Stream JSON | PASS | 34 ms | n/a |
-|IO | IO Test TAR functionality | PASS | 4 seconds, 736 ms | n/a |
-|IO | IO Test binary file detection | PASS | 13 ms | n/a |
-|IO | IO Test copy streams | PASS | 220 ms | n/a |
-|IO | IO Test copy/move/delete file | PASS | 6 ms | n/a |
-|IO | IO Test read/writeFileStream | PASS | 6 ms | n/a |
-|IO | IO Test read/writeFileStream NIO | PASS | 6 ms | n/a |
+|IO | IO Test Stream JSON | PASS | 23 ms | n/a |
+|IO | IO Test TAR functionality | PASS | 4 seconds, 477 ms | n/a |
+|IO | IO Test binary file detection | PASS | 9 ms | n/a |
+|IO | IO Test copy streams | PASS | 168 ms | n/a |
+|IO | IO Test copy/move/delete file | PASS | 18 ms | n/a |
+|IO | IO Test read/writeFileStream | PASS | 3 ms | n/a |
+|IO | IO Test read/writeFileStream NIO | PASS | 5 ms | n/a |
|IO | IO Test read/writeFileStreamBytes | PASS | 2 ms | n/a |
|IO | IO Test read/writeFileStreamBytes NIO | PASS | 1 ms | n/a |
-|JMX | JMX test | PASS | 562 ms | n/a |
-|Java | Java ASym Cipher | PASS | 172 ms | n/a |
-|Java | Java Cipher | PASS | 278 ms | n/a |
-|Net | Get Actual Time (default) | PASS | 37 ms | n/a |
-|Net | Get Actual Time (server and timeout) | PASS | 43 ms | n/a |
-|Net | Get Actual Time (with server) | PASS | 20 ms | n/a |
-|Net | Get Actual Time (with timeout) | PASS | 20 ms | n/a |
+|JMX | JMX test | PASS | 963 ms | n/a |
+|Java | Java ASym Cipher | PASS | 62 ms | n/a |
+|Java | Java Cipher | PASS | 128 ms | n/a |
+|MCP | OAuth authorization URL includes resource and PKCE | PASS | 45 ms | n/a |
+|MCP | OAuth authorization code token exchange includes resource and verifier | PASS | 72 ms | n/a |
+|MCP | OAuth discovery with client credentials | PASS | 163 ms | n/a |
+|MCP | oJob tplDesc renders all tool metadata strings | PASS | 326 ms | n/a |
+|Net | Get Actual Time (default) | PASS | 70 ms | n/a |
+|Net | Get Actual Time (server and timeout) | PASS | 24 ms | n/a |
+|Net | Get Actual Time (with server) | PASS | 45 ms | n/a |
+|Net | Get Actual Time (with timeout) | PASS | 45 ms | n/a |
|Net | Load Net | PASS | ~0 ms | n/a |
-|Obj | Array to object conversion | PASS | 1 ms | n/a |
-|Obj | DB ResultSet to object | PASS | 1 second, 421 ms | n/a |
-|Obj | Filter | PASS | 9 ms | n/a |
-|Obj | Flat map | PASS | 13 ms | n/a |
-|Obj | Flatten | PASS | 211 ms | n/a |
-|Obj | Generate One of | PASS | 42 ms | n/a |
-|Obj | Generate One of Fn | PASS | 15 ms | n/a |
+|Obj | Array to object conversion | PASS | 2 ms | n/a |
+|Obj | DB ResultSet to object | FAIL | 1 second, 136 ms | JavaException: org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for roles with the SUPERUSER attribute |
+|Obj | Filter | PASS | 12 ms | n/a |
+|Obj | Flat map | PASS | 33 ms | n/a |
+|Obj | Flatten | PASS | 189 ms | n/a |
+|Obj | Generate One of | PASS | 41 ms | n/a |
+|Obj | Generate One of Fn | PASS | 14 ms | n/a |
|Obj | Get Path | PASS | 1 ms | n/a |
-|Obj | Object fuzzy search | PASS | 45 ms | n/a |
-|Obj | Object pool | PASS | 6 seconds, 79 ms | n/a |
-|Obj | Object schema validation | PASS | 310 ms | n/a |
+|Obj | Object fuzzy search | PASS | 53 ms | n/a |
+|Obj | Object pool | PASS | 6 seconds, 76 ms | n/a |
+|Obj | Object schema validation | PASS | 292 ms | n/a |
|Obj | Object to array conversion | PASS | 2 ms | n/a |
|Obj | Set Path | PASS | 1 ms | n/a |
-|Obj | Sign object | PASS | 422 ms | n/a |
-|Obj | Thread-safe array | PASS | 2 ms | n/a |
-|Obj | Thread-safe array | PASS | ~0 ms | n/a |
-|Obj | Thread-safe map | PASS | 2 ms | n/a |
-|OpenAF | Await | PASS | 13 ms | n/a |
+|Obj | Sign object | PASS | 324 ms | n/a |
+|Obj | Thread-safe array | PASS | 3 ms | n/a |
+|Obj | Thread-safe array | PASS | 1 ms | n/a |
+|Obj | Thread-safe map | PASS | 1 ms | n/a |
+|OpenAF | Await | PASS | 54 ms | n/a |
|OpenAF | AwaitAll | PASS | 54 ms | n/a |
-|OpenAF | Basic Parallel processing | PASS | 12 ms | n/a |
-|OpenAF | Cache | PASS | 330 ms | n/a |
-|OpenAF | Crypt | PASS | 10 ms | n/a |
+|OpenAF | Basic Parallel processing | FAIL | 9 ms | Something wrong with the parallel processing. |
+|OpenAF | Cache | PASS | 322 ms | n/a |
+|OpenAF | Crypt | PASS | 17 ms | n/a |
|OpenAF | DescType | PASS | 2 ms | n/a |
-|OpenAF | Encrypt/Decrypt | PASS | ~0 ms | n/a |
+|OpenAF | Encrypt/Decrypt | PASS | 1 ms | n/a |
|OpenAF | Get Path | PASS | 1 ms | n/a |
-|OpenAF | Get version | PASS | 2 ms | n/a |
-|OpenAF | IsFunctions | PASS | 1 ms | n/a |
-|OpenAF | Java RegExp | PASS | 9 ms | n/a |
-|OpenAF | Logs | PASS | 4 ms | n/a |
-|OpenAF | Map Array | PASS | 1 ms | n/a |
-|OpenAF | Map22Array | PASS | 516 ms | n/a |
-|OpenAF | NDJSON | PASS | 4 ms | n/a |
-|OpenAF | PSelect | PASS | 7 ms | n/a |
+|OpenAF | Get version | PASS | 1 ms | n/a |
+|OpenAF | IsFunctions | PASS | ~0 ms | n/a |
+|OpenAF | Java RegExp | PASS | 4 ms | n/a |
+|OpenAF | Logs | PASS | 3 ms | n/a |
+|OpenAF | Map Array | PASS | 2 ms | n/a |
+|OpenAF | Map22Array | PASS | 515 ms | n/a |
+|OpenAF | NDJSON | PASS | 2 ms | n/a |
+|OpenAF | PSelect | PASS | 10 ms | n/a |
|OpenAF | Prints | PASS | 1 ms | n/a |
-|OpenAF | Queue | PASS | 16 ms | n/a |
-|OpenAF | Range | PASS | 4 ms | n/a |
-|OpenAF | Retry | PASS | 1 ms | n/a |
+|OpenAF | Queue | PASS | 12 ms | n/a |
+|OpenAF | Range | PASS | 2 ms | n/a |
+|OpenAF | Retry | PASS | 2 ms | n/a |
|OpenAF | SPrints | PASS | 1 ms | n/a |
-|OpenAF | Search Key and Values | PASS | 6 ms | n/a |
-|OpenAF | Set Path | PASS | 2 ms | n/a |
-|OpenAF | Test $do | PASS | 15 ms | n/a |
-|OpenAF | Test $doAll | PASS | 8 ms | n/a |
-|OpenAF | Test $doFirst | PASS | 157 ms | n/a |
+|OpenAF | Search Key and Values | PASS | 2 ms | n/a |
+|OpenAF | Set Path | PASS | 1 ms | n/a |
+|OpenAF | Test $do | PASS | 10 ms | n/a |
+|OpenAF | Test $doAll | PASS | 4 ms | n/a |
+|OpenAF | Test $doFirst | PASS | 155 ms | n/a |
|OpenAF | Test AF Parse | PASS | 1 ms | n/a |
-|OpenAF | Test BCrypt | PASS | 1 second, 542 ms | n/a |
-|OpenAF | Test Encoding | PASS | 1 ms | n/a |
+|OpenAF | Test BCrypt | PASS | 750 ms | n/a |
+|OpenAF | Test Encoding | PASS | ~0 ms | n/a |
|OpenAF | Test Envs | PASS | 1 ms | n/a |
-|OpenAF | Test FLock | PASS | 5 ms | n/a |
+|OpenAF | Test FLock | PASS | 6 ms | n/a |
|OpenAF | Test Format Conversion to/from base64 | PASS | ~0 ms | n/a |
|OpenAF | Test Format Conversion to/from bytes | PASS | ~0 ms | n/a |
|OpenAF | Test GetSet | PASS | 3 ms | n/a |
|OpenAF | Test Lock | PASS | 1 ms | n/a |
|OpenAF | Test Merge | PASS | ~0 ms | n/a |
-|OpenAF | Test Object Compression | PASS | ~0 ms | n/a |
-|OpenAF | Test Path | PASS | 115 ms | n/a |
-|OpenAF | Test Rest | PASS | 296 ms | n/a |
-|OpenAF | Test SHA1 | PASS | ~0 ms | n/a |
+|OpenAF | Test Object Compression | PASS | 1 ms | n/a |
+|OpenAF | Test Path | PASS | 107 ms | n/a |
+|OpenAF | Test Rest | PASS | 226 ms | n/a |
+|OpenAF | Test SHA1 | PASS | 1 ms | n/a |
|OpenAF | Test SHA256 | PASS | ~0 ms | n/a |
|OpenAF | Test SHA512 | PASS | ~0 ms | n/a |
|OpenAF | Test Scope Ids | PASS | 1 ms | n/a |
-|OpenAF | Test Shell | PASS | 3 ms | n/a |
+|OpenAF | Test Shell | PASS | 4 ms | n/a |
|OpenAF | Test Shell with Map | PASS | 2 ms | n/a |
|OpenAF | Test Stream conversions | PASS | 1 ms | n/a |
|OpenAF | Test Void shortcut | PASS | ~0 ms | n/a |
-|OpenAF | Test clone | PASS | 2 ms | n/a |
-|OpenAF | Test pForEach | PASS | 135 ms | n/a |
+|OpenAF | Test clone | PASS | ~0 ms | n/a |
+|OpenAF | Test pForEach | PASS | 151 ms | n/a |
|OpenAF | Thread box | PASS | 306 ms | n/a |
|OpenAF | Two factor authentication | PASS | 2 ms | n/a |
-|OpenAF | XML2And4Obj | PASS | 211 ms | n/a |
+|OpenAF | XML2And4Obj | PASS | 247 ms | n/a |
|OpenAF | YAML | PASS | 5 ms | n/a |
|Sec | Sec basic functionality | PASS | 15 ms | n/a |
-|Sec | Sec function functionality | PASS | 458 ms | n/a |
-|Sec | Sec object functionality | PASS | 885 ms | n/a |
-|Server | Auth | PASS | 6 seconds, 18 ms | n/a |
-|Server | AuthApp | PASS | 163 ms | n/a |
-|Server | HTTP server | PASS | 110 ms | n/a |
-|Server | HTTP server Java | PASS | 20 ms | n/a |
-|Server | HTTP server NWU2 | PASS | 76 ms | n/a |
-|Server | Locks | PASS | 2 seconds, 22 ms | n/a |
-|Server | Queue | PASS | 4 seconds, 669 ms | n/a |
-|Server | REST server | PASS | 102 ms | n/a |
-|Server | REST server Java | PASS | 177 ms | n/a |
-|Server | REST server NWU2 | PASS | 66 ms | n/a |
-|Server | REST server simple | PASS | 32 ms | n/a |
-|Server | REST server simple Java | PASS | 22 ms | n/a |
-|Server | REST server simple NWU2 | PASS | 28 ms | n/a |
-|Server | Scheduler | PASS | 16 seconds, 24 ms | n/a |
+|Sec | Sec function functionality | PASS | 330 ms | n/a |
+|Sec | Sec object functionality | PASS | 865 ms | n/a |
+|Server | Auth | PASS | 6 seconds, 21 ms | n/a |
+|Server | AuthApp | PASS | 164 ms | n/a |
+|Server | CheckIn | PASS | 3 ms | n/a |
+|Server | HTTP server | PASS | 116 ms | n/a |
+|Server | HTTP server Java | PASS | 24 ms | n/a |
+|Server | HTTP server NWU2 | PASS | 80 ms | n/a |
+|Server | HTTP server prefix | FAIL | 22 ms | (nwu) Problem stripping HTTPD prefix before route handlers. (got { "responseCode": 200, "contentType": "text/plain", "response": "/normal" } but expected "/normal") |
+|Server | HTTP server prefix Java | FAIL | 8 ms | (java) Problem stripping HTTPD prefix before route handlers. (got { "responseCode": 200, "contentType": "text/plain", "response": "/normal" } but expected "/normal") |
+|Server | HTTP server prefix NWU2 | FAIL | 18 ms | (nwu2) Problem stripping HTTPD prefix before route handlers. (got { "responseCode": 200, "contentType": "text/plain", "response": "/normal" } but expected "/normal") |
+|Server | HTTP server prefix helpers | PASS | 1 ms | n/a |
+|Server | Locks | PASS | 2 seconds, 15 ms | n/a |
+|Server | Queue | PASS | 4 seconds, 893 ms | n/a |
+|Server | REST server | PASS | 66 ms | n/a |
+|Server | REST server Java | PASS | 202 ms | n/a |
+|Server | REST server NWU2 | PASS | 49 ms | n/a |
+|Server | REST server simple | PASS | 31 ms | n/a |
+|Server | REST server simple Java | PASS | 25 ms | n/a |
+|Server | REST server simple NWU2 | PASS | 30 ms | n/a |
+|Server | Scheduler | PASS | 16 seconds, 23 ms | n/a |
|Template | Load Template | PASS | ~0 ms | n/a |
-|Template | Test Markdown to HTML | PASS | 654 ms | n/a |
-|Template | Test conditional helpers | PASS | 224 ms | n/a |
-|Template | Test format helpers | PASS | 63 ms | n/a |
-|Template | Test openaf helpers | PASS | 127 ms | n/a |
-|Template | Test partial helpers | PASS | 38 ms | n/a |
-|Template | Test simple template | PASS | 53 ms | n/a |
-|ZIP | ZIP basic functionality | PASS | 1 second, 462 ms | n/a |
-|ZIP | ZIP streaming functionality | PASS | 1 second, 496 ms | n/a |
-|oDoc | Test access to oDoc | PASS | 1 second, 4 ms | n/a |
-|oJob | oJob | PASS | 1 second, 672 ms | n/a |
-|oJob | oJobArgsMultipleLevels | PASS | 1 second, 980 ms | n/a |
-|oJob | oJobChecks | PASS | 1 second, 671 ms | n/a |
-|oJob | oJobInitArray | PASS | 4 seconds, 100 ms | n/a |
-|oJob | oJobPass | PASS | 1 second, 813 ms | n/a |
-|oJob | oJobShortcutOutput | PASS | 1 second, 888 ms | n/a |
-|oJob | oJobShortcuts | PASS | 1 second, 780 ms | n/a |
+|Template | Test Markdown to HTML | PASS | 614 ms | n/a |
+|Template | Test Markdown to HTML prefix | PASS | 163 ms | n/a |
+|Template | Test conditional helpers | PASS | 140 ms | n/a |
+|Template | Test format helpers | PASS | 30 ms | n/a |
+|Template | Test openaf helpers | PASS | 68 ms | n/a |
+|Template | Test partial helpers | PASS | 39 ms | n/a |
+|Template | Test simple template | PASS | 22 ms | n/a |
+|ZIP | ZIP basic functionality | PASS | 1 second, 531 ms | n/a |
+|ZIP | ZIP streaming functionality | PASS | 1 second, 577 ms | n/a |
+|oDoc | Test access to oDoc | PASS | 792 ms | n/a |
+|oJob | oJob | PASS | 1 second, 930 ms | n/a |
+|oJob | oJobArgsMultipleLevels | PASS | 2 seconds, 129 ms | n/a |
+|oJob | oJobChecks | PASS | 1 second, 873 ms | n/a |
+|oJob | oJobEncryptedJSON | PASS | 1 second, 834 ms | n/a |
+|oJob | oJobEncryptedYAML | PASS | 1 second, 896 ms | n/a |
+|oJob | oJobInitArray | PASS | 4 seconds, 557 ms | n/a |
+|oJob | oJobPass | PASS | 1 second, 907 ms | n/a |
+|oJob | oJobShortcutOutput | PASS | 1 second, 959 ms | n/a |
+|oJob | oJobShortcuts | PASS | 1 second, 805 ms | n/a |
diff --git a/tests/results.svg b/tests/results.svg
index 5f998751..66e3a3ef 100644
--- a/tests/results.svg
+++ b/tests/results.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file