Beispiel
google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0: errdetails.BadRequest
Verifiziertes Beispiel für golang google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0: errdetails.BadRequest. Der Vertrag lief auf…
sha256:02f726f6e94941d4d98f4db867d243a7130f13bf5818a2429c17bfd1062382a6
Dieses Netzwerk bietet eine Sache: ein Sample, das baut. Es hat es in einer Sandbox ausgeführt und die signierte Quittung behalten. Es bewertet nichts und garantiert nichts — ob derselbe Code bei Ihnen baut, hat es nicht gemessen.
Wie viele verschiedene Signaturschlüssel eine bestandene Vertragsquittung eingereicht haben. Einer ist der Autor allein; mehr als einer heißt, jemand anderes hat es auch gebaut. Ein Schlüssel wird selbst erzeugt und hat keine registrierte Identität dahinter — gezählt werden Schlüssel, nicht Personen.
MIT-0
Ausführungsbelege
Die deklarierte Umgebung und die signierten Läufe stehen getrennt, damit Sie genau sehen, was dieses Sample ausgeführt hat und wo.
- Beleggrundlage
- Signierter Vertrag bestanden
- Verifizierungsbelege
- 1
- Signaturschlüssel, die es gebaut haben
- 1
Deklarierte Umgebung
linux 24 · ubuntu · glibc 2.39 x64 go
Umgebungen der Verifizierungsläufe
| Umgebung | Contract | Stufen | Lauf |
|---|---|---|---|
| go 1.26 · linux debian/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1golang:1.26@sha256:e30143be198a… |
2026-09-16 |
Fall
HOW- Ziel
- verify google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest in pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0
- Symbole
-
- google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest
- Erstellt
- 2026-09-16T01:57:48Z
Contract
- errdetails.BadRequest.GetFieldViolations returns nil on nil or empty BadRequest message
- errdetails.BadRequest initializes with FieldViolations and returns them via GetFieldViolations
- errdetails.BadRequest_FieldViolation provides field path and description strings via GetField and GetDescription
- errdetails.BadRequest serializes and deserializes accurately with proto.Marshal and proto.Unmarshal preserving field violations
- errdetails.BadRequest.Reset clears all field violations from the message
Dateien
- PROMPT.md
- csx.json
- go.mod
- go.sum
- main.go
- spec.json
- test/contract.go
Quelltext
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: verify google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest in pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0
Demonstrate these symbols/APIs:
- google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:e45e2019da13d60f513be07a2a6683983e2963527a76346f1adb967dd6868b50","contract":["errdetails.BadRequest.GetFieldViolations returns nil on nil or empty BadRequest message","errdetails.BadRequest initializes with FieldViolations and returns them via GetFieldViolations","errdetails.BadRequest_FieldViolation provides field path and description strings via GetField and GetDescription","errdetails.BadRequest serializes and deserializes accurately with proto.Marshal and proto.Unmarshal preserving field violations","errdetails.BadRequest.Reset clears all field violations from the message"],"goal":"verify google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest in pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0","kind":"HOW","packages":["pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0"],"schemaVersion":1,"symbols":["google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest"]},"contractCommand":["go","run","./test"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"golang","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"go","schemaVersion":1},"license":"MIT-0","packages":["pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0"],"schemaVersion":1,"subject":"pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0","symbols":["google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest"],"verifierAdapter":"golang@1"}
module sample
go 1.26.6
require (
google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0
google.golang.org/protobuf v1.36.12
)
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0 h1:MAKi5q709QWfnkkpNQ0M12hYJ1+e8qYVDyowc4U1XZM=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc=
google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
package main
import (
"fmt"
"google.golang.org/genproto/googleapis/rpc/errdetails"
"google.golang.org/protobuf/proto"
)
func main() {
badRequest := &errdetails.BadRequest{
FieldViolations: []*errdetails.BadRequest_FieldViolation{
{
Field: "username",
Description: "username is already taken",
},
{
Field: "email",
Description: "invalid email format",
},
},
}
for _, v := range badRequest.GetFieldViolations() {
fmt.Printf("violation: %s -> %s\n", v.GetField(), v.GetDescription())
}
bytes, err := proto.Marshal(badRequest)
if err != nil {
panic(err)
}
var parsed errdetails.BadRequest
if err := proto.Unmarshal(bytes, &parsed); err != nil {
panic(err)
}
fmt.Printf("unmarshaled %d violations\n", len(parsed.GetFieldViolations()))
badRequest.Reset()
fmt.Printf("after reset: %d violations\n", len(badRequest.GetFieldViolations()))
}
{
"schemaVersion": 1,
"goal": "verify google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest in pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0",
"kind": "HOW",
"packages": [
"pkg:golang/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250728155136-f173205681a0"
],
"symbols": [
"google.golang.org/genproto/googleapis/rpc/errdetails.BadRequest"
]
}
package main
import (
"fmt"
"os"
"google.golang.org/genproto/googleapis/rpc/errdetails"
"google.golang.org/protobuf/proto"
)
func main() {
// 1. Nil BadRequest returns nil
var nilReq *errdetails.BadRequest
if got := nilReq.GetFieldViolations(); got != nil {
fmt.Fprintf(os.Stderr, "assertion failed: expected nilReq.GetFieldViolations() == nil, got %v\n", got)
os.Exit(1)
}
// Empty BadRequest returns nil
emptyReq := &errdetails.BadRequest{}
if got := emptyReq.GetFieldViolations(); got != nil {
fmt.Fprintf(os.Stderr, "assertion failed: expected emptyReq.GetFieldViolations() == nil, got %v\n", got)
os.Exit(1)
}
// 2. Populated BadRequest with FieldViolations
v1 := &errdetails.BadRequest_FieldViolation{
Field: "username",
Description: "username is already taken",
}
v2 := &errdetails.BadRequest_FieldViolation{
Field: "email",
Description: "invalid email format",
}
req := &errdetails.BadRequest{
FieldViolations: []*errdetails.BadRequest_FieldViolation{v1, v2},
}
violations := req.GetFieldViolations()
if len(violations) != 2 {
fmt.Fprintf(os.Stderr, "assertion failed: expected 2 violations, got %d\n", len(violations))
os.Exit(1)
}
// 3. FieldViolation getters
if req.GetFieldViolations()[0].GetField() != "username" || req.GetFieldViolations()[0].GetDescription() != "username is already taken" {
fmt.Fprintf(os.Stderr, "assertion failed: violation 0 mismatch\n")
os.Exit(1)
}
if req.GetFieldViolations()[1].GetField() != "email" || req.GetFieldViolations()[1].GetDescription() != "invalid email format" {
fmt.Fprintf(os.Stderr, "assertion failed: violation 1 mismatch\n")
os.Exit(1)
}
var nilViolation *errdetails.BadRequest_FieldViolation
if nilViolation.GetField() != "" || nilViolation.GetDescription() != "" {
fmt.Fprintf(os.Stderr, "assertion failed: nilViolation getters should return empty strings\n")
os.Exit(1)
}
// 4. Proto Marshal / Unmarshal
data, err := proto.Marshal(req)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion failed: proto.Marshal failed: %v\n", err)
os.Exit(1)
}
var unmarshaled errdetails.BadRequest
if err := proto.Unmarshal(data, &unmarshaled); err != nil {
fmt.Fprintf(os.Stderr, "assertion failed: proto.Unmarshal failed: %v\n", err)
os.Exit(1)
}
if len(unmarshaled.GetFieldViolations()) != 2 {
fmt.Fprintf(os.Stderr, "assertion failed: expected 2 unmarshaled violations, got %d\n", len(unmarshaled.GetFieldViolations()))
os.Exit(1)
}
if unmarshaled.GetFieldViolations()[0].GetField() != "username" || unmarshaled.GetFieldViolations()[1].GetField() != "email" {
fmt.Fprintf(os.Stderr, "assertion failed: unmarshaled violation content mismatch\n")
os.Exit(1)
}
// 5. Reset clears field violations
req.Reset()
if got := req.GetFieldViolations(); got != nil {
fmt.Fprintf(os.Stderr, "assertion failed: expected nil after Reset(), got %v\n", got)
os.Exit(1)
}
fmt.Println("All contract assertions passed.")
}
Ursprungs-Seeder
anonym