|
69 | 69 |
|
70 | 70 | - name: Run tests |
71 | 71 | run: | |
72 | | - go test -v -race -coverprofile=coverage.out -covermode=atomic ./pkg/... |
| 72 | + # The whole module: ./pkg/... alone skips the LangGraph conformance |
| 73 | + # suite and the Studio end-to-end suite under ./test/.... |
| 74 | + go test -v -race -timeout 15m \ |
| 75 | + -coverpkg=./pkg/... -coverprofile=coverage.out -covermode=atomic \ |
| 76 | + ./... |
73 | 77 | env: |
74 | 78 | POSTGRES_HOST: localhost |
75 | 79 | POSTGRES_PORT: 5432 |
|
79 | 83 | REDIS_HOST: localhost |
80 | 84 | REDIS_PORT: 6379 |
81 | 85 |
|
| 86 | + - name: Fuzz smoke test |
| 87 | + run: | |
| 88 | + # A short run of each target: enough to catch a regression that makes a |
| 89 | + # fuzz target crash immediately, without lengthening CI. |
| 90 | + set -e |
| 91 | + for pkg_target in \ |
| 92 | + "./pkg/core FuzzStateJSONRoundTrip" \ |
| 93 | + "./pkg/core FuzzStateMarshalUnmarshal" \ |
| 94 | + "./pkg/core FuzzDeepCopy" \ |
| 95 | + "./pkg/core FuzzGraphRouting" \ |
| 96 | + "./pkg/core FuzzGraphConstruction" \ |
| 97 | + "./pkg/tools FuzzToolArguments" \ |
| 98 | + "./pkg/tools FuzzPathResolution" \ |
| 99 | + "./pkg/tools FuzzCommandPolicy" \ |
| 100 | + "./pkg/tools FuzzURLPolicy" \ |
| 101 | + "./pkg/server FuzzAPIRequestBodies" \ |
| 102 | + "./pkg/server FuzzAPIPaths" ; do |
| 103 | + set -- $pkg_target |
| 104 | + echo "fuzzing $2 in $1" |
| 105 | + go test -run '^$' -fuzz "^$2$" -fuzztime=20s "$1" |
| 106 | + done |
| 107 | +
|
82 | 108 | - name: Upload coverage to Codecov |
83 | 109 | uses: codecov/codecov-action@v4 |
84 | 110 | with: |
@@ -245,7 +271,7 @@ jobs: |
245 | 271 |
|
246 | 272 | - name: Run integration tests |
247 | 273 | run: | |
248 | | - go test -v -tags=integration ./test/e2e/... |
| 274 | + go test -v -race -timeout 15m ./test/e2e/... |
249 | 275 | env: |
250 | 276 | POSTGRES_HOST: localhost |
251 | 277 | POSTGRES_PORT: 5432 |
|
0 commit comments