-
Notifications
You must be signed in to change notification settings - Fork 649
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: introduce nightly job for robustness test #658
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
name: Robustness Nightly | ||
permissions: read-all | ||
on: | ||
schedule: | ||
- cron: '25 9 * * *' # runs every day at 09:25 UTC | ||
# workflow_dispatch enables manual testing of this job by maintainers | ||
workflow_dispatch: | ||
|
||
jobs: | ||
main: | ||
# GHA has a maximum amount of 6h execution time, we try to get done within 3h | ||
uses: ./.github/workflows/robustness_template.yaml | ||
with: | ||
count: 100 | ||
testTimeout: 200m | ||
runs-on: "['ubuntu-latest-8-cores']" | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
name: Reusable Robustness Workflow | ||
on: | ||
workflow_call: | ||
inputs: | ||
count: | ||
required: true | ||
type: number | ||
testTimeout: | ||
required: false | ||
type: string | ||
default: '30m' | ||
runs-on: | ||
required: false | ||
type: string | ||
default: "['ubuntu-latest']" | ||
permissions: read-all | ||
|
||
jobs: | ||
test: | ||
timeout-minutes: 210 | ||
runs-on: ${{ fromJson(inputs.runs-on) }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- id: goversion | ||
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT" | ||
- uses: actions/setup-go@v5 | ||
with: | ||
go-version: ${{ steps.goversion.outputs.goversion }} | ||
- name: test-robustness | ||
run: | | ||
set -euo pipefail | ||
|
||
make gofail-enable | ||
|
||
# build bbolt with failpoint | ||
go install ./cmd/bbolt | ||
sudo -E PATH=$PATH make ROBUSTNESS_TESTFLAGS="--count ${{ inputs.count }} --timeout ${{ inputs.testTimeout }} -failfast" test-robustness |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -84,4 +84,4 @@ test-failpoint: | |
.PHONY: test-robustness # Running robustness tests requires root permission | ||
test-robustness: | ||
go test -v ${TESTFLAGS} ./tests/dmflakey -test.root | ||
go test -v ${TESTFLAGS} ./tests/robustness -test.root | ||
go test -v ${TESTFLAGS} ${ROBUSTNESS_TESTFLAGS} ./tests/robustness -test.root | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I notice we don't have any graceful validation that whoever runs === RUN TestRestartFromPowerFailure/fp_ext4_commit5s
powerfailure_test.go:112: start bbolt bench -work -path /tmp/TestRestartFromPowerFailurefp_ext4_commit5s797232614/002/boltdb -count=1000000000 -batch-size=5
powerfailure_test.go:129: simulate power failure
powerfailure_test.go:134: random pick failpoint: resizeFileError
powerfailure_test.go:168:
Error Trace: /home/james/Documents/bbolt/tests/robustness/powerfailure_test.go:168
/home/james/Documents/bbolt/tests/robustness/powerfailure_test.go:135
/home/james/Documents/bbolt/tests/robustness/powerfailure_test.go:81
Error: Received unexpected error:
Put "http://127.0.0.1:12345/resizeFileError": dial tcp 127.0.0.1:12345: connect: connection refused In There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I build bbolt with failpoints. I think gofail.List doesn't work for this case. Let me think about how to handle. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add an instance of this robustness job on
['actuated-arm64-8cpu-8gb']
?Happy for it to be done as a follow-up issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure. Let me handle this. It might require to enable some kernel modules.