bneradt opened a new pull request, #13577:
URL: https://github.com/apache/trafficserver/pull/13577
AuTest's `Streams` entity defines `All`, not `all`, and neither `Streams`
nor its base `TestEntity` overrides `__setattr__`. So `Streams.all = <tester>`
plants a dead instance attribute and registers no tester at all. Twelve
assertions across seven tests have therefore never executed.
### Evidence
1. `autest/testenities/streams.py` defines exactly `stdout`, `stderr`,
`All`, `Warning`, `Error`, `Debug`, `Verbose`. `hasattr(Streams, 'All') ==
True`, `hasattr(Streams, 'all') == False`.
2. AuTest's `docsrc/source/API/streams.rst` documents those same seven
attributes; `all` is not among them.
3. AuTest's own test suite and docs use `Streams.All` 28 times and
`Streams.all` zero times.
4. Direct experiment against autest 1.10.6 — a process printing `alice.com`,
asserted to contain `bob.com`:
```python
# lowercase -> PASSES (assertion silently dropped)
tr.Processes.Default.Streams.all = Testers.ContainsExpression("bob.com",
"demands bob.com")
```
```
Running Test probe: Passed
Failed: 0
Passed: 1
```
```python
# capital -> FAILS, as it should
tr.Processes.Default.Streams.All = Testers.ContainsExpression("bob.com",
"demands bob.com")
```
```
Process: Default: Failed
Test : Checking that ReturnCode == 0 - Passed
file .../stream.all.txt : demands bob.com - Failed
Reason: Contents of .../stream.all.txt did not contains expression:
"bob.com"
```
### What this turns on
Marked **WIP** because these twelve checks have never run once. Some may
well fail, and the point of the PR is to find out which. Breaking the change
down:
- **`tls/allow-plain.test.py`** (3),
**`tls/tls_hooks_client_verify.test.py`** (3), **`tls/tls_sni_groups.test.py`**
(2) — expression checks on curl verbose output. Newly live.
- **`timeout/quic_no_activity_timeout.test.py`** (1) and
**`timeout/default_inactivity_timeout.test.py`** (1) — newly activate gold-file
comparisons that have never been validated. Note
`gold/client_default_inactivity_timeout.gold` opens with three backticks rather
than the usual two, which is itself a hint the file has never been compared.
- **`h3/h3_sni_check.test.py`** (1) and **`ip_allow/ip_allow.test.py`** (1)
— both sit behind `if self.gold_file:`, and no call site ever passes a
non-empty `gold_file`. These lines stay dead either way; renaming them just
means they will work if someone does start passing one.
I will iterate on whatever Jenkins turns up. Where an assertion turns out to
have been wrong all along rather than the code being wrong, I will say so
explicitly rather than quietly relaxing the expectation.
`tests/gold_tests/pluginTest/cert_update/cert_update.test.py` has two more
of these; it is deliberately left alone here because #13576 is already
rewriting that file.
Found while reviewing #13576, where the same defect is why a broken
`TSSslClientCertUpdate` went unnoticed: that test's `bob.com` gold check was on
`.all`, so it was never evaluated.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]