diff options
Diffstat (limited to 'gnu/packages/golang-check.scm')
-rw-r--r-- | gnu/packages/golang-check.scm | 555 |
1 files changed, 555 insertions, 0 deletions
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm new file mode 100644 index 0000000000..42e501a6e3 --- /dev/null +++ b/gnu/packages/golang-check.scm @@ -0,0 +1,555 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Pierre Neidhardt <[email protected]> +;;; Copyright © 2018 Pierre-Antoine Rouby <[email protected]> +;;; Copyright © 2019 Brian Leung <[email protected]> +;;; Copyright © 2019 Leo Famulari <[email protected]> +;;; Copyright © 2020 Jakub Kądziołka <[email protected]> +;;; Copyright © 2020 Joseph LaFreniere <[email protected]> +;;; Copyright © 2020 Oleg Pykhalov <[email protected]> +;;; Copyright © 2020 Ryan Prior <[email protected]> +;;; Copyright © 2021 Guillaume Le Vaillant <[email protected]> +;;; Copyright © 2021 Sarah Morgensen <[email protected]> +;;; Copyright © 2021 Tobias Geerinckx-Rice <[email protected]> +;;; Copyright © 2022 ( <[email protected]> +;;; Copyright © 2022 Efraim Flashner <[email protected]> +;;; Copyright © 2023 Felix Lechner <[email protected]> +;;; Copyright © 2023 Hilton Chain <[email protected]> +;;; Copyright © 2023 Katherine Cox-Buday <[email protected]> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages golang-check) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (gnu packages) + #:use-module (gnu packages golang)) + +;;; Commentary: +;;; +;;; Golang packages to unit-test, mock, assert, lint processes for Golang itself. +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +(define-public go-honnef-co-go-tools + (package + (name "go-honnef-co-go-tools") + (version "0.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dominikh/go-tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "099z04v7vvwwglnps315s9fmal68xvzlc1g8m26iqi980grbwn32")))) + (build-system go-build-system) + (arguments + `(#:import-path "honnef.co/go/tools" + #:tests? #f + ;; Source-only package + #:phases (modify-phases %standard-phases + (delete 'build)))) + (propagated-inputs + (list go-github-com-burntsushi-toml + go-github-com-kisielk-gotool + go-golang-org-x-exp + go-golang-org-x-mod + go-golang-org-x-tools)) + (home-page "https://honnef.co/go/tools") + (synopsis "Staticcheck advanced Go linter") + (description + "Staticcheck is a state of the art linter for the Go programming language. +Using static analysis, it finds bugs and performance issues, offers +simplifications, and enforces style rules.") + (license license:expat))) + +(define-public go-github-com-alecthomas-assert + (let ((commit "405dbfeb8e38effee6e723317226e93fff912d06") + (revision "1")) + (package + (name "go-github-com-alecthomas-assert") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alecthomas/assert") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/alecthomas/assert")) + (native-inputs + (list go-github-com-alecthomas-colour + go-github-com-mattn-go-isatty + go-github-com-alecthomas-repr + go-github-com-sergi-go-diff)) + (home-page "https://github.com/alecthomas/assert/") + (synopsis "Go assertion library") + (description "Assertion library that: +@itemize +@item makes spotting differences in equality much easier +@item uses repr and diffmatchpatch to display structural differences in colour +@item aborts tests on first assertion failure +@end itemize\n") + (license license:expat)))) + +(define-public go-github-com-cheekybits-is + (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9") + (revision "0")) + (package + (name "go-github-com-cheekybits-is") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cheekybits/is") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cheekybits/is")) + (home-page "https://github.com/cheekybits/is") + (synopsis "Mini testing helper for Go") + (description "A mini testing helper for Go. + +@itemize +@item It has a simple interface (@command{is.OK} and @command{is.Equal}). +@item It plugs into existing Go toolchain (uses @command{testing.T}). +@item It's obvious for newcomers. +@item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers +- because testing panics is ugly. +@end itemize\n") + (license license:expat)))) + +(define-public go-github-com-frankban-quicktest + (package + (name "go-github-com-frankban-quicktest") + (version "1.11.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/frankban/quicktest") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/frankban/quicktest")) + (propagated-inputs + (list go-github-com-google-go-cmp-cmp go-github-com-kr-pretty)) + (home-page "https://github.com/frankban/quicktest") + (synopsis "Quick helpers for testing Go applications") + (description + "Package quicktest provides a collection of Go helpers for writing +tests.") + (license license:expat))) + +(define-public go-github-com-google-go-cmdtest + (let ((commit "55ab3332a786118933ddf71544aae14951ba9bc5") + (revision "0")) + (package + (name "go-github-com-google-go-cmdtest") + (version (git-version "0.4.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/go-cmdtest") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10kswvbdwissjb5mr0ys4b3ppxkxlpklqg7cr2z7rv21g2vwczbl")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/go-cmdtest")) + (propagated-inputs + (list go-github-com-google-renameio go-github-com-google-go-cmp-cmp)) + (home-page "https://github.com/google/go-cmdtest") + (synopsis "Testing for your CLI") + (description + "The cmdtest package simplifies testing of command-line interfaces. It +provides a simple, cross-platform, shell-like language to express command +execution. It can compare actual output with the expected output, and can +also update a file with new \"golden\" output that is deemed correct.") + (license license:asl2.0)))) + +(define-public go-github-com-google-gofuzz + (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382") + (revision "0")) + (package + (name "go-github-com-google-gofuzz") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gofuzz") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/gofuzz")) + (home-page "https://github.com/google/gofuzz") + (synopsis "Fuzz testing library for Go") + (description "Gofuzz is a library for populationg Go objects with random +values for the purpose of fuzz testing.") + (license license:asl2.0)))) + +(define-public go-github-com-golangplus-testing + (package + (name "go-github-com-golangplus-testing") + (version "1.0.0") + (home-page "https://github.com/golangplus/testing") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/golangplus/testing")) + (propagated-inputs + (list go-github-com-golangplus-fmt)) + (synopsis "Additions to Go's standard testing package") + (description "This package provides additions to Go's stdlib testing.") + (license license:bsd-3))) + +(define-public go-github-com-jacobsa-oglematchers + (let ((commit "141901ea67cd4769c6800aa7bfdfc558fa22bda5") + (revision "0")) + (package + (name "go-github-com-jacobsa-oglematchers") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/oglematchers") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09ff5x6vbhd9zl1z4yzyk573ifh16rry38q1rx986kbz4hqkmniq")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jacobsa/oglematchers" + ;; break loop with with go-github-com-jacobsa-ogletest + #:tests? #f)) + (home-page "https://github.com/jacobsa/oglematchers") + (synopsis "Matchers for Go testing framework") + (description + "Package oglematchers provides a set of matchers useful in a testing or mocking +framework. These matchers are inspired by and mostly compatible with Google +Test for C++ and Google JS Test.") + (license license:asl2.0)))) + +(define-public go-github-com-jacobsa-oglemock + (let ((commit "e94d794d06ffc6de42cb19d0dab3c219efdd6dcf") + (revision "0")) + (package + (name "go-github-com-jacobsa-oglemock") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/oglemock") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14yxf8ykwdwkcccksl6741xgzcf8qykyi58kp4maxpgscqhdl8rq")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jacobsa/oglemock" + ;; break loop with with go-github-com-jacobsa-ogletest + #:tests? #f)) + (native-inputs + (list go-github-com-jacobsa-oglematchers)) + (home-page "https://github.com/jacobsa/oglemock") + (synopsis "Mocking framework for unit tests") + (description + "Package oglemock provides a mocking framework for unit tests.") + (license license:asl2.0)))) + +(define-public go-github-com-jacobsa-ogletest + (let ((commit "80d50a735a1108a2aeb7abc4a988d183f20c5292") + (revision "0")) + (package + (name "go-github-com-jacobsa-ogletest") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jacobsa/ogletest") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lbwbxzr75g65q07ry5k4kglxqs3ym7xkvqznzm55rm3qk76v83r")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jacobsa/ogletest" + ;; These tests should be made working + #:tests? #f)) + (native-inputs + (list go-github-com-jacobsa-oglematchers + go-github-com-jacobsa-oglemock + go-github-com-jacobsa-reqtrace + go-golang-org-x-net)) + (home-page "https://github.com/jacobsa/ogletest") + (synopsis "Expressive unit tests") + (description + "Package ogletest provides a framework for writing expressive unit tests. It +integrates with the builtin testing package, so it works with the gotest +command. Unlike the testing package which offers only basic capabilities for +signalling failures, it offers ways to express expectations and get nice failure +messages automatically.") + (license license:asl2.0)))) + +(define-public go-github-com-onsi-ginkgo + (package + (name "go-github-com-onsi-ginkgo") + (version "1.16.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/onsi/ginkgo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hh6n7q92y0ai8k6rj2yzw6wwxikhyiyk4j92zgvf1zad0gmqqmz")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/onsi/ginkgo")) + (propagated-inputs + (list go-golang-org-x-sys + go-golang-org-x-tools + go-github-com-go-task-slim-sprig + go-github-com-nxadm-tail + go-github-com-onsi-gomega)) + (home-page "https://github.com/onsi/ginkgo") + (synopsis "BDD-style testing framework for Go") + (description + "Ginkgo is a Behaviour-Driven Development testing framework for Go. It +builds on top of Go's builtin @code{testing} library and is complemented by the +Gomega matcher library.") + (license license:expat))) + +(define-public go-github-com-stretchr-testify + (package + (name "go-github-com-stretchr-testify") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stretchr/testify") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ixgjsvafr3513pz3r6pmgk074s2dxkll0dadvl25gkf30rkmh10")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/stretchr/testify")) + (propagated-inputs + (list go-github-com-davecgh-go-spew + go-github-com-pmezard-go-difflib + go-github-com-stretchr-objx + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/stretchr/testify") + (synopsis "Go helper library for tests and invariant checking") + (description "This package provide many tools for testifying that your +code will behave as you intend. + +Features include: +@itemize +@item Easy assertions +@item Mocking +@item HTTP response trapping +@item Testing suite interfaces and functions. +@end itemize") + (license license:expat))) + +(define-public go-github-com-tdewolff-test + (package + (name "go-github-com-tdewolff-test") + (version "1.0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tdewolff/test") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10myz3zdkqmx37cvj507h7l2ncb0rq9shqvz9ggq1swijbsvazff")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/tdewolff/test")) + (home-page "https://github.com/tdewolff/test") + (synopsis "Go test helper functions") + (description + "This package implements a few functions that are useful for io testing, +such as readers and writers that fail after N consecutive reads/writes.") + (license license:expat))) + +(define-public go-gopkg-in-check-v1 + (package + (name "go-gopkg-in-check-v1") + (version "1.0.0-20201130134442-10cb98267c6c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-check/check") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jwxndf8rsyx0fgrp47d99rp55yzssmryb92jfj3yf7zd8rjjljn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/check.v1" + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys #:rest args) + (unless + ;; The tests fail when run with gccgo. + (false-if-exception (search-input-file inputs "/bin/gccgo")) + (apply (assoc-ref %standard-phases 'check) args))))))) + (propagated-inputs + (list go-github-com-kr-pretty)) + (home-page "https://gopkg.in/check.v1") + (synopsis "Test framework for the Go language") + (description "This package provides a test library for the Go language.") + (license license:bsd-2))) + +(define-public go-gopkg-in-go-playground-assert-v1 + (package + (name "go-gopkg-in-go-playground-assert-v1") + (version "1.2.1") + (home-page "https://github.com/go-playground/assert") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/go-playground/assert.v1")) + (synopsis "Basic assertion library used alongside native Go testing") + (description + "This package provides basic assertions along with building blocks for +custom assertions to be used alongside native Go testing.") + (license license:expat))) + +(define-public go-golang-org-sql-mock + (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b") + (version "1.3.3") + (revision "1")) + (package + (name "go-golang-org-sql-mock") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DATA-DOG/go-sqlmock") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/DATA-DOG/go-sqlmock")) + (synopsis "Mock library implementing @code{sql/driver}") + (description "This library simulates SQL-driver behavior in tests +without requiring a real database connection.") + (home-page "https://github.com/DATA-DOG/go-sqlmock") + (license license:expat)))) + +(define-public go-golang-org-x-lint + (let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445") + (revision "0")) + (package + (name "go-golang-org-x-lint") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/lint") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3")))) + (build-system go-build-system) + (arguments + '(#:import-path "golang.org/x/lint" + #:tests? #f)) ;; TODO: Fix tests + (propagated-inputs + (list go-golang-org-x-tools)) + (home-page "https://golang.org/x/lint") + (synopsis "Linter for Go source code") + (description + "This is a linter for Go source code. Unlike gofmt, it doesn't +reformat the source code, it only prints out style mistakes.") + (license license:bsd-3)))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; |