Repository navigation
Expand file tree
/
Copy pathphpunit.xml
More file actions
69 lines (65 loc) · 4.04 KB
/
Copy pathphpunit.xml
File metadata and controls
69 lines (65 loc) · 4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/11.5/phpunit.xsd"
bootstrap="tests/bootstrap.php" colors="true" cacheDirectory=".phpunit.cache">
<testsuites>
<testsuite name="AppRuntime">
<directory>tests</directory>
</testsuite>
</testsuites>
<!--
Xdebug coverage keeps a line map for the whole run, which grows with the suite; at PHP's default 128M it ran out
(a 282 KB allocation over the line, on 8.3) as the codebase grew. This raises the ceiling for the run — it masks
no leak: coverage memory is cumulative, not retained between tests. The two tests that assert a leg LOWERS the
process to 128M run isolated (RunInSeparateProcess), so their ini_set is not refused by a suite already holding
more than 128M under coverage.
-->
<php>
<ini name="memory_limit" value="512M"/>
</php>
<source>
<include>
<directory suffix=".php">src</directory>
</include>
<!--
TRES SUPERFICIES QUEDAN FUERA DE LA MEDICIÓN, Y ESTO DICE CUÁLES Y POR QUÉ.
No están sin probar: están probadas desde el OTRO lado. `Console/Application.php`,
`Operations/AgentOperations.php`, `Operations/RecipeOperations.php` y `Support/Operations.php`
sólo se ejercitan con una app Milpa ARRANCADA —`config/boot.php`, contenedor, plugins— y una
app es justo lo que un paquete no tiene. `SequenceOperations` y `Sequence/GovernedDoor.php` caen
aquí por la MISMA razón y no por una nueva: la puerta gobernada vivía dentro de
`RecipeOperations` —ya excluida— y salió de ahí porque una receta y un despliegue comparten el
motor y no el significado (greenhouse decisions/0223). Mover código excluido a un archivo nuevo
no lo vuelve medible; lo que sí se puede probar solo —el conjunto cerrado de secuencias
declaradas, y la declaración de la operación— vive medido en `Sequence/DeclaredSequences.php` y
en las pruebas de `sequence:run`. `RecipeOperations` cae aquí por lo mismo que
`AgentOperations`: su manejador arma el registro, la compuerta de sesión y el puente de
consentimiento contra un kernel booteado, y su núcleo puro —el que sí se puede probar solo— ya
vive medido en `Recipe/RecipeDriver.php`. Sus pruebas de manejador viven en `milpa/framework`,
que sí trae una app, y el arnés de ganado de la tarea 4 la lista en su propia config.
La alternativa era bajar el piso de 96 a 63 para que las tres cupieran sin probarse. Eso
habría dejado pasar una regresión real en TODO lo demás con tal de no nombrar este hueco.
Medido el 2026-08-04: 95.97 % sobre lo que este paquete sí puede probar solo.
El hueco está declarado en el tablero: una regresión en estas tres la caza la plantilla, no
este repositorio. Si algún día el paquete trae su propio fixture arrancable, esto se borra.
-->
<!--
Y UNA CUARTA, POR LA MISMA RAZÓN CON OTRO NOMBRE: el sandbox no está en el CI.
`Agent/TrialRunner.php` corre una operación bajo `bwrap` en un namespace de usuario sin
privilegios. El runner de GitHub no ofrece ese namespace, así que `available()` da falso y el
EJECUTOR nunca corre —sus pruebas se marcan «skipped», no fallan—. Medirlo aquí bajaría el piso
por un hueco que sólo un host con namespaces puede llenar. Se ejercita bajo bwrap REAL en la
medición de ganado del invernadero (greenhouse evidence/0273), igual que las tres de arriba se
ejercitan en `milpa/framework`. Si algún día el CI corre con namespaces, esto se borra.
-->
<exclude>
<file>src/Console/Application.php</file>
<file>src/Operations/AgentOperations.php</file>
<file>src/Operations/RecipeOperations.php</file>
<file>src/Operations/SequenceOperations.php</file>
<file>src/Sequence/GovernedDoor.php</file>
<file>src/Support/Operations.php</file>
<file>src/Agent/TrialRunner.php</file>
</exclude>
</source>
</phpunit>