サンプル
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38: profile.Merge, profile.Profile.CheckValid, profile.Profile.Copy
検証済みサンプル — golang github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38: profile.Merge, profile.Profile.CheckValid, profile.Profile.Copy. go 1.26 …
sha256:b33fc091f8227b49b68d306a58810fbc74d64ca41b20290edcf3c6c9b447866b
このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。
合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。
MIT-0
実行証拠
宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。
- 証拠の基準
- 署名済みコントラクト合格
- 検証レシート
- 1
- ビルドした署名鍵
- 1
宣言された環境
linux 24 · ubuntu · glibc 2.39 x64 go
検証実行環境
| 環境 | コントラクト | ステージ | 実行日 |
|---|---|---|---|
| go 1.26 · linux alpine/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1golang:1.26-alpine@sha256:28d89ee9cc0f… |
2026-08-27 |
ケース
HOW- ゴール
- verify pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38
- シンボル
-
- github.com/google/pprof/profile.Merge
- github.com/google/pprof/profile.Profile.CheckValid
- github.com/google/pprof/profile.Profile.Copy
- github.com/google/pprof/profile.Profile.Scale
- 作成日
- 2026-08-27T23:04:42Z
コントラクト
- profile.Merge combines multiple profiles of identical structure by aggregating sample values
- profile.Profile.Copy creates an independent deep copy of the profile
- profile.Profile.Scale multiplies all sample values by a scaling factor
ファイル
- PROMPT.md
- csx.json
- go.mod
- go.sum
- sample.go
- spec.json
- test/contract.go
ソース
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 pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38
Demonstrate these symbols/APIs:
- github.com/google/pprof/profile.Merge
- github.com/google/pprof/profile.Profile.CheckValid
- github.com/google/pprof/profile.Profile.Copy
- github.com/google/pprof/profile.Profile.Scale
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:9c17c24d2a9ca331d2e949355e6e9d3563a4f559c963f4f65eda132ae768d3cc","contract":["profile.Merge combines multiple profiles of identical structure by aggregating sample values","profile.Profile.Copy creates an independent deep copy of the profile","profile.Profile.Scale multiplies all sample values by a scaling factor"],"goal":"verify pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38","kind":"HOW","packages":["pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38"],"schemaVersion":1,"symbols":["github.com/google/pprof/profile.Merge","github.com/google/pprof/profile.Profile.CheckValid","github.com/google/pprof/profile.Profile.Copy","github.com/google/pprof/profile.Profile.Scale"]},"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/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38"],"schemaVersion":1,"subject":"pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38","symbols":["github.com/google/pprof/profile.Merge","github.com/google/pprof/profile.Profile.CheckValid","github.com/google/pprof/profile.Profile.Copy","github.com/google/pprof/profile.Profile.Scale"],"verifierAdapter":"golang@1"}
module sample
go 1.22
require github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
package sample
import (
"fmt"
"github.com/google/pprof/profile"
)
// CreateProfile creates a valid profile with sample types, function, location, and a sample.
func CreateProfile(funcName, fileName string, line int64, sampleCount, cpuNanos int64) *profile.Profile {
fn := &profile.Function{
ID: 1,
Name: funcName,
SystemName: funcName,
Filename: fileName,
StartLine: line,
}
loc := &profile.Location{
ID: 1,
Line: []profile.Line{
{
Function: fn,
Line: line + 2,
},
},
}
p := &profile.Profile{
SampleType: []*profile.ValueType{
{Type: "samples", Unit: "count"},
{Type: "cpu", Unit: "nanoseconds"},
},
PeriodType: &profile.ValueType{Type: "cpu", Unit: "nanoseconds"},
Period: 10000000,
Function: []*profile.Function{fn},
Location: []*profile.Location{loc},
Sample: []*profile.Sample{
{
Location: []*profile.Location{loc},
Value: []int64{sampleCount, cpuNanos},
},
},
}
return p
}
// MergeProfiles merges multiple profiles into a single combined profile.
func MergeProfiles(profiles []*profile.Profile) (*profile.Profile, error) {
if len(profiles) == 0 {
return nil, fmt.Errorf("no profiles provided")
}
return profile.Merge(profiles)
}
// CopyAndScale clones a profile and scales all sample values by the given factor.
func CopyAndScale(p *profile.Profile, factor float64) *profile.Profile {
cloned := p.Copy()
cloned.Scale(factor)
return cloned
}
{
"schemaVersion": 1,
"goal": "verify pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38",
"kind": "HOW",
"packages": [
"pkg:golang/github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38"
],
"symbols": [
"github.com/google/pprof/profile.Merge",
"github.com/google/pprof/profile.Profile.CheckValid",
"github.com/google/pprof/profile.Profile.Copy",
"github.com/google/pprof/profile.Profile.Scale"
]
}
package main
import (
"fmt"
"os"
"github.com/google/pprof/profile"
"sample"
)
func main() {
// Assertion 1: profile.Merge combines multiple profiles of identical structure by aggregating sample values
p1 := sample.CreateProfile("handleRequest", "server.go", 20, 10, 100000000)
p2 := sample.CreateProfile("handleRequest", "server.go", 20, 15, 150000000)
merged, err := sample.MergeProfiles([]*profile.Profile{p1, p2})
if err != nil {
fmt.Fprintf(os.Stderr, "MergeProfiles failed: %v\n", err)
os.Exit(1)
}
if err := merged.CheckValid(); err != nil {
fmt.Fprintf(os.Stderr, "merged profile CheckValid failed: %v\n", err)
os.Exit(1)
}
if len(merged.Sample) != 1 {
fmt.Fprintf(os.Stderr, "expected 1 sample after merge, got %d\n", len(merged.Sample))
os.Exit(1)
}
if merged.Sample[0].Value[0] != 25 || merged.Sample[0].Value[1] != 250000000 {
fmt.Fprintf(os.Stderr, "merged sample values mismatch: got %v, expected [25, 250000000]\n", merged.Sample[0].Value)
os.Exit(1)
}
// Assertion 2: profile.Profile.Copy creates an independent deep copy of the profile
cloned := p1.Copy()
if err := cloned.CheckValid(); err != nil {
fmt.Fprintf(os.Stderr, "cloned profile CheckValid failed: %v\n", err)
os.Exit(1)
}
if cloned.Sample[0].Value[0] != 10 {
fmt.Fprintf(os.Stderr, "cloned profile value mismatch: got %d, expected 10\n", cloned.Sample[0].Value[0])
os.Exit(1)
}
// Assertion 3: profile.Profile.Scale multiplies all sample values by a scaling factor
scaled := sample.CopyAndScale(p1, 2.5)
if scaled.Sample[0].Value[0] != 25 || scaled.Sample[0].Value[1] != 250000000 {
fmt.Fprintf(os.Stderr, "scaled sample values mismatch: got %v, expected [25, 250000000]\n", scaled.Sample[0].Value)
os.Exit(1)
}
// Original profile values must remain unchanged
if p1.Sample[0].Value[0] != 10 || p1.Sample[0].Value[1] != 100000000 {
fmt.Fprintf(os.Stderr, "original profile mutated after copy and scale\n")
os.Exit(1)
}
fmt.Println("All pprof profile merge and scale contract assertions passed.")
}
オリジンシーダー
匿名