summaryrefslogtreecommitdiff
path: root/gnu/packages/golang-check.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/golang-check.scm')
-rw-r--r--gnu/packages/golang-check.scm555
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.
+;;;