CodeSampleX

Ejemplo

golang.org/x/net v0.37.0: websocket

Muestra verificada para golang golang.org/x/net v0.37.0: websocket. El contrato se ejecutó en go 1.26 · linux debian/x64 · docker y pasó: websocket.Handler…

sha256:b3efe7c0250f191296160e3a5d40523dd0e1d0dbe94ac5aaa80098424551aafe

Esta red ofrece una sola cosa: una muestra que compila. La ejecutó en un sandbox y guardó el recibo firmado. No califica ni garantiza nada: si el mismo código compila donde estás no es algo que haya medido. Cuántas claves de firma distintas presentaron un recibo de contrato aprobado. Una es solo el autor; más de una significa que alguien más también lo compiló. Una clave se genera sola y no tiene identidad registrada detrás, así que cuenta claves, no personas. MIT-0

Evidencia de ejecución

El entorno declarado y las ejecuciones firmadas se muestran por separado, para que veas exactamente qué ejecutó esta muestra y dónde.

Base de evidencia
Contrato firmado aprobado
Recibos de verificación
1
Claves de firma que lo compilaron
1
Entorno declarado linux 24 · ubuntu · glibc 2.39 x64 go

Entornos de las ejecuciones de verificación

Entorno Contrato Etapas Ejecución
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-02

Caso

HOW
Objetivo
verify golang.org/x/net/websocket in pkg:golang/golang.org/x/net@v0.37.0
Paquetes
Símbolos
  • golang.org/x/net/websocket
Creado
2026-09-02T15:41:16Z

Contrato

  1. websocket.Handler implements http.Handler
  2. websocket.Dial connects to WebSocket server
  3. websocket.Message.Send and websocket.Message.Receive exchange text frames
  4. websocket.Message.Send and websocket.Message.Receive exchange binary frames

Archivos

  • PROMPT.md
  • contract_test.go
  • csx.json
  • go.mod
  • go.sum
  • spec.json
  • websocket.go

Descargar el artefacto de código fuente (tar.gz)

Código fuente

PROMPT.md
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 golang.org/x/net/websocket in pkg:golang/golang.org/x/net@v0.37.0
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:golang/golang.org/x/net@v0.37.0
Demonstrate these symbols/APIs:
  - golang.org/x/net/websocket

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.
contract_test.go
package sample

import (
	"bytes"
	"net/http"
	"testing"

	"golang.org/x/net/websocket"
)

func TestContractWebSocket(t *testing.T) {
	// 1. Verify websocket.Handler implements http.Handler
	var _ http.Handler = websocket.Handler(func(ws *websocket.Conn) {})

	// Start echo test server
	server, err := EchoServer()
	if err != nil {
		t.Fatalf("failed to start echo server: %v", err)
	}
	defer server.Close()

	origin := "http://localhost/"

	// 2. Verify websocket.Dial connects to WebSocket server
	conn, err := ConnectWebSocket(server.URL, origin)
	if err != nil {
		t.Fatalf("failed to dial websocket: %v", err)
	}
	defer conn.Close()

	// 3. Verify sending and receiving text messages
	testMsg := "hello websocket contract"
	if err := SendTextMessage(conn, testMsg); err != nil {
		t.Fatalf("failed to send text message: %v", err)
	}

	receivedMsg, err := ReceiveTextMessage(conn)
	if err != nil {
		t.Fatalf("failed to receive text message: %v", err)
	}
	if receivedMsg != testMsg {
		t.Fatalf("expected message %q, got %q", testMsg, receivedMsg)
	}

	// 4. Verify sending and receiving binary messages
	testData := []byte{0x00, 0x01, 0x02, 0xFE, 0xFF}
	if err := SendBinaryMessage(conn, testData); err != nil {
		t.Fatalf("failed to send binary message: %v", err)
	}

	receivedData, err := ReceiveBinaryMessage(conn)
	if err != nil {
		t.Fatalf("failed to receive binary message: %v", err)
	}
	if !bytes.Equal(receivedData, testData) {
		t.Fatalf("expected binary %v, got %v", testData, receivedData)
	}
}
csx.json
{"case":{"caseId":"case:sha256:9ec9e784c9809baf7b91648d4069af998680e08230d54189bbc4fed938e8a246","contract":["websocket.Handler implements http.Handler","websocket.Dial connects to WebSocket server","websocket.Message.Send and websocket.Message.Receive exchange text frames","websocket.Message.Send and websocket.Message.Receive exchange binary frames"],"goal":"verify golang.org/x/net/websocket in pkg:golang/golang.org/x/net@v0.37.0","kind":"HOW","packages":["pkg:golang/golang.org/x/net@v0.37.0"],"schemaVersion":1,"symbols":["golang.org/x/net/websocket"]},"contractCommand":["go","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/golang.org/x/net@v0.37.0"],"schemaVersion":1,"subject":"pkg:golang/golang.org/x/net@v0.37.0","symbols":["golang.org/x/net/websocket"],"verifierAdapter":"golang@1"}
go.mod
module example.com/sample

go 1.23.0

require golang.org/x/net v0.37.0
go.sum
golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
spec.json
{
  "schemaVersion": 1,
  "goal": "verify golang.org/x/net/websocket in pkg:golang/golang.org/x/net@v0.37.0",
  "kind": "HOW",
  "packages": [
    "pkg:golang/golang.org/x/net@v0.37.0"
  ],
  "symbols": [
    "golang.org/x/net/websocket"
  ]
}
websocket.go
package sample

import (
	"fmt"
	"net/http/httptest"
	"strings"

	"golang.org/x/net/websocket"
)

// EchoServer creates an HTTP test server running a websocket echo handler.
func EchoServer() (*httptest.Server, error) {
	handler := websocket.Handler(func(ws *websocket.Conn) {
		defer ws.Close()
		for {
			var msg string
			err := websocket.Message.Receive(ws, &msg)
			if err != nil {
				break
			}
			err = websocket.Message.Send(ws, msg)
			if err != nil {
				break
			}
		}
	})

	server := httptest.NewServer(handler)
	return server, nil
}

// ConnectWebSocket dials a WebSocket connection to the given server URL.
func ConnectWebSocket(serverURL, origin string) (*websocket.Conn, error) {
	wsURL := strings.Replace(serverURL, "http://", "ws://", 1)
	return websocket.Dial(wsURL, "", origin)
}

// SendTextMessage sends a string message over the WebSocket connection.
func SendTextMessage(ws *websocket.Conn, message string) error {
	if ws == nil {
		return fmt.Errorf("nil connection")
	}
	return websocket.Message.Send(ws, message)
}

// ReceiveTextMessage receives a string message from the WebSocket connection.
func ReceiveTextMessage(ws *websocket.Conn) (string, error) {
	if ws == nil {
		return "", fmt.Errorf("nil connection")
	}
	var msg string
	err := websocket.Message.Receive(ws, &msg)
	return msg, err
}

// SendBinaryMessage sends raw bytes over the WebSocket connection.
func SendBinaryMessage(ws *websocket.Conn, data []byte) error {
	if ws == nil {
		return fmt.Errorf("nil connection")
	}
	return websocket.Message.Send(ws, data)
}

// ReceiveBinaryMessage receives raw bytes from the WebSocket connection.
func ReceiveBinaryMessage(ws *websocket.Conn) ([]byte, error) {
	if ws == nil {
		return nil, fmt.Errorf("nil connection")
	}
	var data []byte
	err := websocket.Message.Receive(ws, &data)
	return data, err
}

Seeder de origen

anónimo