From 00a8bf683e3f215c147a43af0c135cc5b0844e56 Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Mon, 10 Jan 2022 17:06:28 +0100 Subject: [PATCH 1/2] ci: update CI scaffolding --- ci/run-tests.go | 76 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/ci/run-tests.go b/ci/run-tests.go index 031a08ab..42558564 100644 --- a/ci/run-tests.go +++ b/ci/run-tests.go @@ -1,7 +1,8 @@ -// Copyright 2018 The go-python Authors. All rights reserved. +// Copyright ©2018 The go-python Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build ignore // +build ignore package main @@ -10,32 +11,33 @@ import ( "bufio" "bytes" "flag" - "io/ioutil" + "fmt" "log" "os" "os/exec" "strings" + "time" ) func main() { log.SetPrefix("ci: ") log.SetFlags(0) + start := time.Now() + defer func() { + log.Printf("elapsed time: %v\n", time.Since(start)) + }() + var ( - race = flag.Bool("race", false, "enable race detector") - cover = flag.Bool("cover", false, "enable code coverage") - tags = flag.String("tags", "", "build tags") + race = flag.Bool("race", false, "enable race detector") + cover = flag.String("coverpkg", "", "apply coverage analysis in each test to packages matching the patterns.") + tags = flag.String("tags", "", "build tags") + verbose = flag.Bool("v", false, "enable verbose output") ) flag.Parse() - out := new(bytes.Buffer) - cmd := exec.Command("go", "list", "./...") - cmd.Stdout = out - cmd.Stderr = os.Stderr - cmd.Stdin = os.Stdin - - err := cmd.Run() + pkgs, err := pkgList() if err != nil { log.Fatal(err) } @@ -48,23 +50,24 @@ func main() { args := []string{"test"} - if *cover { - args = append(args, "-coverprofile=profile.out", "-covermode=atomic") + if *verbose { + args = append(args, "-v") + } + if *cover != "" { + args = append(args, "-coverprofile=profile.out", "-covermode=atomic", "-coverpkg="+*cover) } if *tags != "" { args = append(args, "-tags="+*tags) } - if *race { - args = append(args, "-race") + switch { + case *race: + args = append(args, "-race", "-timeout=20m") + default: + args = append(args, "-timeout=10m") } args = append(args, "") - scan := bufio.NewScanner(out) - for scan.Scan() { - pkg := scan.Text() - if strings.Contains(pkg, "vendor") { - continue - } + for _, pkg := range pkgs { args[len(args)-1] = pkg cmd := exec.Command("go", args...) cmd.Stdin = os.Stdin @@ -74,8 +77,8 @@ func main() { if err != nil { log.Fatal(err) } - if *cover { - profile, err := ioutil.ReadFile("profile.out") + if *cover != "" { + profile, err := os.ReadFile("profile.out") if err != nil { log.Fatal(err) } @@ -92,3 +95,28 @@ func main() { log.Fatal(err) } } + +func pkgList() ([]string, error) { + out := new(bytes.Buffer) + cmd := exec.Command("go", "list", "./...") + cmd.Stdout = out + cmd.Stderr = os.Stderr + cmd.Stdin = os.Stdin + + err := cmd.Run() + if err != nil { + return nil, fmt.Errorf("could not get package list: %w", err) + } + + var pkgs []string + scan := bufio.NewScanner(out) + for scan.Scan() { + pkg := scan.Text() + if strings.Contains(pkg, "vendor") { + continue + } + pkgs = append(pkgs, pkg) + } + + return pkgs, nil +} From 4dc023db62c4bb7bcd10da9aa2aa00ba4cbdc989 Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Mon, 10 Jan 2022 17:18:51 +0100 Subject: [PATCH 2/2] ci: drop python3.4 pytest --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8ded89c..289009df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,8 @@ jobs: run: | GOARCH=386 go test $TAGS ./... GOARCH=amd64 go run ./ci/run-tests.go $TAGS -race $COVERAGE - python3 py3test.py + ## FIXME(sbinet): bring back python3.4 or upgrade gpython to python3.x + ## python3 py3test.py - name: Test Windows if: matrix.platform == 'windows-latest' run: | pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy