Ce que le réseau a trouvé
Chaque ligne ci-dessous est une mesure, pas un avis. Chacune renvoie à un échantillon publié dont le contract s'exécute dans un conteneur épinglé, réseau coupé : vous pouvez le rejouer et contredire le résultat.
Le système et le runtime viennent de l'environnement enregistré par l'échantillon ; les dimensions absentes sont exclues.
597 constats sur 8 écosystèmes.
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
Énoncé par l'échantillon, mesuré par son contrat
526–550 sur 568, mesurés par des échantillons publiés.
-
composerContrat d'échantillonphp · linux/x64symfony/console@v8.1.4
On croitQuestionHelper applies configured Question normalizers to default values in non-interactive execution before validating and returning the response.
MesuréQuestionHelper::ask() in non-interactive mode completely bypasses Question::setNormalizer(), returning the unnormalized default value and passing the unnormalized type directly to the validator.
-
composerContrat d'échantillonphp · linux/x64symfony/console@7.4.16
On croitA model expects that destroying StreamOutput closes its underlying stream resource, ConsoleOutput opens fresh stream handles per instance, OutputFormatter resets style tags between format calls, and ProgressBar writes output to STDOUT.
MesuréStreamOutput does not close its underlying stream resource when destroyed, leaving the file descriptor open unless explicitly closed with fclose by the caller
-
composerContrat d'échantillonphp · linux/x64symfony/console@8.1.4
On croitSerializing an ArrayInput instance to a CLI string with __toString() produces argument tokens that preserve boolean flag states and option values when round-tripped through StringInput.
MesuréArrayInput::__toString() serializes a boolean true flag as '--flag=1', which throws RuntimeException when rebound to a VALUE_NONE option, and serializes a boolean false flag as '--flag', which inverts the flag to true when reparsed.
-
composerContrat d'échantillonphp · linux/x64symfony/console@7.2.1
On croitDeclaring a protected static $defaultName property on a Command subclass sets the command name and description and allows registering it with Application::add().
MesuréIn Symfony Console 7, Command::getDefaultName() returns null for classes defining static $defaultName, leaving the command name null and causing Application::add() to throw LogicException unless configured via the #[AsCommand] attribute.
-
golangContrat d'échantillongo · linux/x64sigs.k8s.io/yaml@v1.6.0
On croitUnmarshaling YAML with type mismatches returns a yaml.TypeError, non-pointer destinations return an InvalidUnmarshalError, and UnmarshalStrict returns uniform YAML unmarshal errors for all schema violations.
MesuréType mismatch in YAML unmarshaling returns a wrapped *json.UnmarshalTypeError with prefix 'error unmarshaling JSON' and does not match yaml.TypeError
-
hexContrat d'échantillonelixir · linux/x64nimble_options@1.1.1
On croitA custom type callback is expected to return an error tuple and still be reported as {:error, ValidationError}; anything else should do the same.
Mesuréassert NimbleOptions.validate([port: :bad], custom_schema()) converts {:error, message} from the callback into a NimbleOptions.ValidationError whose message is prefixed with the library error field
-
hexContrat d'échantillonelixir · linux/x64decimal@3.1.1
On croitDecimal.new/1 and Decimal.parse/1 parse any decimal string containing up to the default decimal128 context precision of 34 significant digits regardless of leading zeros.
Mesuréassert Decimal.new parses 34 significant digits with leading zero without exceeding max_digits
-
golangContrat d'échantillongo · linux/x64github.com/go-chi/chi/v5@v5.3.1
On croitCalling ClientIPFromXFF with no arguments extracts the originating client IP from the leftmost entry in X-Forwarded-For and updates RemoteAddr like RealIP.
Mesuréassert ClientIPFromXFF with unset trusted prefixes returns the rightmost XFF hop rather than the leftmost client IP
-
golangContrat d'échantillongo · linux/x64github.com/go-chi/chi/v5@v5.3.1
On croitRegistering middleware.URLFormat and middleware.StripSlashes in either order yields the same route match behavior for /item.json/.
MesuréWhen middleware.URLFormat is registered before middleware.StripSlashes and only GET /item exists, GET /item.json/ returns 404.
-
golangContrat d'échantillongo · linux/x64sigs.k8s.io/yaml@v1.4.0
On croitsigs.k8s.io/yaml.Unmarshal preserves exact 64-bit integer values when decoding YAML into untyped maps or interface{} fields without explicit decoder options.
Mesuréassert default Unmarshal silently truncates integers above 2^53 into float64 whereas JSONOpt UseNumber preserves exact int64 values as json.Number
-
golangContrat d'échantillongo · linux/x64encoding/json@v1.26.5
On croitA JSON encoder serializes string values using standard RFC 8259 character escaping, preserving literal <, >, and & characters unless HTML escaping is explicitly enabled.
Mesuréassert json.NewEncoder with default settings escapes <, >, and & into \u003c, \u003e, and \u0026
-
golangContrat d'échantillongo · linux/x64sigs.k8s.io/yaml@v1.4.0
On croitA caller expects unknown YAML keys to be rejected by default when decoding into a typed struct.
Mesuréassert Unmarshal succeeds when decoding `name: main unknown: value` into `decodeTarget` without options
-
golangContrat d'échantillongo · linux/x64encoding/json@go1.26.5
On croitUsing Decoder.UseNumber causes every decoded number to be produced as json.Number, even when decoding into a concrete numeric struct field.
Mesuréassert that decoding `{"count": 7, "wildcard": 7}` with Decoder.UseNumber into struct `{Count int; Wildcard any}` yields `Count` as an `int` and `Wildcard` as `json.Number`
-
golangContrat d'échantillongo · linux/x64net/http@go1.26.5
On croitA caller using a default http.Client should see the same payload bytes and encoding metadata that the server put on the response.
MesuréWhen a server writes a gzip-compressed body, a default http.Client request must return plain text bytes, not gzip bytes.
-
golangContrat d'échantillongo · linux/x64net/http@go1.26.5
On croitA POST request that receives a 303 See Other keeps its method and body through automatic redirect following.
MesuréA default client must follow `StatusSeeOther` (`303`) by issuing the next request as `GET`, not as the original method.
-
golangContrat d'échantillongo · linux/x64net/http@go1.26.5
On croitA method token in a ServeMux pattern, such as `GET /resource`, is just part of the path and does not affect routing.
MesuréRegistering `HandleFunc("GET /resource", ...)` and `HandleFunc("POST /resource", ...)` must allow GET and POST only, while a PUT request to `/resource` must fail with 405.
-
golangContrat d'échantillongo · linux/x64encoding/json@v1.26.5
On croitjson.Marshal encodes fixed-size byte arrays [N]byte as Base64 strings and json.Unmarshal decodes Base64 strings into byte arrays.
Mesuréassert json.Marshal encodes fixed-size byte array [N]byte as a JSON numeric array instead of a base64 string
-
golangContrat d'échantillongo · linux/x64encoding/json@go1.26.5
On croitA field is omitted only when its value is reflect-empty, so a non-empty struct value must always be serialized unless `omitempty` is false.
Mesuréassert json.Marshal with tag `field,omitzero` omits a non-empty struct when its IsZero() method returns true
-
golangContrat d'échantillongo · linux/x64encoding/json@v1.26.5
On croitA caller can treat json.Encoder.Encode as json.Marshal followed by Write, so the output bytes are exactly the JSON value.
Mesuréassert that json.NewEncoder(&buf).Encode(v) appends a trailing \n byte to the encoded output
-
pypiContrat d'échantillonpython · linux/x64httpx2@2.10.0
On croitPassing query parameters via the params argument merges them with query parameters already present in the target URL.
Mesuréassert passing params to Request('GET', 'https://example.com/search?q=python', params={'page': '2'}) overwrites the URL query to 'page=2', discarding 'q=python'
-
composerContrat d'échantillonphp · linux/x64symfony/console@7.4.16
On croitA competent developer or model expects that during the execution of a parent command, the Application's active running command context is preserved across sub-command invocations, ensuring that error rendering retains the parent command's synopsis throughout its lifecycle.
MesuréApplication doRun resets runningCommand to null upon sub-command completion instead of restoring the parent command
-
composerContrat d'échantillonphp · linux/x64guzzlehttp/guzzle@8.0.2
On croitPassing a stream or resource sink to a request that follows redirects writes only the final destination response body into the sink.
Mesuréassert a stream sink passed during redirected requests accumulates both intermediate redirect bodies and final response body instead of only the destination body
-
npmContrat d'échantillonnode · linux/x64vitest@4.1.10
On croitmockReset clears call records and replaces the mock implementation with an empty function returning undefined like Jest, rather than reverting to the initial implementation while keeping the spy active
Mesuréassert mockReset on vi.spyOn reverts to initial method implementation instead of undefined while continuing to intercept and record calls
-
cargoContrat d'échantillonrust · linux/x64winnow@1.0.4
On croitWhen an alt combinator fails on invalid input after partially matching an alternative, ContextError preserves the error details and byte offset from whichever branch parsed deepest.
Mesuréassert alt with ContextError discards a partial match in an earlier branch and returns the error and offset of the last evaluated branch, while cut_err prevents backtrack and preserves the deep failure site
-
composerContrat d'échantillonphp · linux/x64symfony/console@8.1.4
On croitUnrecognized CLI options throw InvalidOptionException and missing required arguments throw MissingInputException.
MesuréArgvInput with an unknown option throws RuntimeException rather than InvalidOptionException or InvalidArgumentException
Comment vérifier n'importe quelle ligne
Ouvrez l'échantillon, lisez son contract, exécutez-le. Le contract est le test propre à l'échantillon : il tourne hors réseau dans un conteneur épinglé, et c'est le reçu signé de cette exécution que le réseau conserve. Rien ici ne repose sur notre lecture d'une bibliothèque, seulement sur ce qu'elle a fait.
Certains échantillons publiés ne figurent pas sur cette page. Leur contrat est passé et l'échantillon est en ligne, mais aucune ligne de ce contrat ne se lit comme une phrase. Une assertion comme expect(x).toBe(1), placée à côté de la croyance qu'elle vérifie, n'apprend rien au lecteur. Nous préférons les omettre plutôt que publier une preuve que personne ne peut lire.