Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

9 changed files with 709 additions and 456 deletions

View file

@ -1,23 +0,0 @@
on: [pull_request]
jobs:
builds:
name: Builds
runs-on: ubuntu-latest
strategy:
matrix:
go_versions: [ '1.22', '1.23' ]
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '${{ matrix.go_versions }}'
- name: Build binary
run: make
- name: Check dirty suffix
run: if [[ $(make version) == *"dirty"* ]]; then echo "Version has dirty suffix" && exit 1; fi

View file

@ -1,20 +0,0 @@
on: [pull_request]
jobs:
dco:
name: DCO
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.23'
- name: Run commit format checker
uses: https://git.frostfs.info/TrueCloudLab/dco-go@v3
with:
from: 'origin/${{ github.event.pull_request.base.ref }}'

View file

@ -1,38 +0,0 @@
on: [pull_request]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '1.23'
cache: true
- name: Run linters
run: make lint
tests:
name: Tests
runs-on: ubuntu-latest
strategy:
matrix:
go_versions: [ '1.22', '1.23' ]
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '${{ matrix.go_versions }}'
- name: Update Go modules
run: make dep
- name: Run tests
run: make test

View file

@ -1,21 +0,0 @@
on: [pull_request]
jobs:
vulncheck:
name: Vulncheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.23'
- name: Install govulncheck
run: go install golang.org/x/vuln/cmd/govulncheck@latest
- name: Run govulncheck
run: govulncheck ./...

View file

@ -1 +0,0 @@
.* @alexvanin @dkirillov

View file

@ -27,7 +27,6 @@ s3-tests-parser compatibility suite.json --format json --output-format md --outp
type (
Results struct {
Verbose bool
Legend []Status
TagGroups []TagGroup
}
@ -43,13 +42,11 @@ type (
}
TestResult struct {
Color string
Name string
Comment string
Passed int
Total int
FailedTests []string
PassedTests []string
Color string
Name string
Comment string
Passed int
Total int
}
)
@ -57,14 +54,12 @@ const (
formatFlag = "format"
outputFlag = "output"
outputFormatFlag = "output-format"
verboseFlag = "verbose"
)
func initCompatibilityCmd() {
compatibilityCmd.Flags().String(formatFlag, "csv", "format of input test suite file")
compatibilityCmd.Flags().String(outputFlag, "", "file to write output, if missed the stdout is used")
compatibilityCmd.Flags().String(outputFormatFlag, "txt", "format of output")
compatibilityCmd.Flags().Bool(verboseFlag, false, "produce additional info")
}
func runCompatibilityCmd(cmd *cobra.Command, args []string) error {
@ -83,7 +78,6 @@ func runCompatibilityCmd(cmd *cobra.Command, args []string) error {
}
res := formResults(testStruct, testsMap)
res.Verbose = viper.GetBool(verboseFlag)
return printResults(cmd, res)
}
@ -102,7 +96,7 @@ var legend = []Status{
},
{
Color: templates.BlueColor,
Description: "Not supported",
Description: "Not supported yet, but will be in future",
},
{
Color: templates.BlackColor,
@ -112,21 +106,12 @@ var legend = []Status{
func formResults(testStruct s3.TestsStructure, testsMap map[string]bool) Results {
tagGroups := make(map[string]TagGroup)
groupTests := make(map[string][]string)
for _, group := range testStruct.Groups {
groupTests[group.Name] = group.Tests
}
for _, group := range testStruct.Groups {
tagGroup, ok := tagGroups[group.Tag]
if !ok {
tagGroup.Name = group.Tag
}
for _, n := range group.Include {
group.Tests = append(group.Tests, groupTests[n]...)
}
tagGroup.Tests = append(tagGroup.Tests, formTestResult(group, testsMap))
tagGroups[group.Tag] = tagGroup
}
@ -145,19 +130,16 @@ func formResults(testStruct s3.TestsStructure, testsMap map[string]bool) Results
func formTestResult(group s3.Group, testsMap map[string]bool) TestResult {
ln := len(group.Tests)
pass := 0
var failed []string
var passed []string
for _, test := range group.Tests {
if testsMap[test] {
passed = append(passed, test)
} else {
failed = append(failed, test)
pass++
}
}
var color string
if strings.Contains(group.Comment, "Not supported") {
if strings.Contains(group.Comment, "Not supported yet") {
color = templates.BlueColor
} else if strings.Contains(group.Comment, "Not applicable") {
color = templates.BlackColor
@ -165,7 +147,7 @@ func formTestResult(group s3.Group, testsMap map[string]bool) TestResult {
if color == "" {
color = templates.RedColor
rate := float64(len(passed)) / float64(ln)
rate := float64(pass) / float64(ln)
if rate > 0.9 {
color = templates.GreenColor
} else if rate > 0.5 {
@ -174,13 +156,11 @@ func formTestResult(group s3.Group, testsMap map[string]bool) TestResult {
}
return TestResult{
Color: color,
Name: group.Name,
Comment: group.Comment,
Passed: len(passed),
Total: ln,
FailedTests: failed,
PassedTests: passed,
Color: color,
Name: group.Name,
Comment: group.Comment,
Passed: pass,
Total: ln,
}
}

File diff suppressed because it is too large Load diff

View file

@ -19,7 +19,6 @@ type Group struct {
Skip bool `json:"skip"`
Comment string `json:"comment"`
Tests []string `json:"tests"`
Include []string `json:"include"`
}
func ParseTestsStruct() (TestsStructure, error) {

View file

@ -1,10 +1,6 @@
# S3 Protocol Compatibility
{{$verbose := .Verbose}}
{{range .TagGroups}}
## {{.Name}}
{{range .Tests}}
{{colorToTerminal .Color}}{{.Name}}: {{.Passed}}/{{.Total}}; {{.Comment}} {{colorToTerminal "black"}}{{if $verbose}}
failed: {{.FailedTests}}
passed: {{.PassedTests}}
{{end}}{{end}}
{{colorToTerminal .Color}}{{.Name}}: {{.Passed}}/{{.Total}}; {{.Comment}} {{colorToTerminal "black"}} {{end}}
{{end}}