2023-10-18 21:28:54 -04:00
|
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
2024-01-17 17:08:20 -05:00
|
|
|
|
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
|
2023-10-18 21:29:05 -04:00
|
|
|
|
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
2023-10-18 21:28:55 -04:00
|
|
|
|
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
2023-10-18 21:29:11 -04:00
|
|
|
|
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
|
2023-10-18 21:28:58 -04:00
|
|
|
|
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
2024-01-17 17:13:38 -05:00
|
|
|
|
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
|
2023-10-18 21:28:55 -04:00
|
|
|
|
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
2023-10-18 21:29:00 -04:00
|
|
|
|
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
|
2023-10-18 21:29:12 -04:00
|
|
|
|
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
2023-10-18 21:29:06 -04:00
|
|
|
|
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
|
2023-10-18 21:29:09 -04:00
|
|
|
|
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
|
2023-10-18 21:28:58 -04:00
|
|
|
|
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
2023-10-18 21:29:01 -04:00
|
|
|
|
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
2023-10-18 21:29:08 -04:00
|
|
|
|
;;; Copyright © 2022 ( <paren@disroot.org>
|
2023-10-18 21:28:55 -04:00
|
|
|
|
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
|
2023-10-18 21:28:56 -04:00
|
|
|
|
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
|
2023-10-18 21:29:02 -04:00
|
|
|
|
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
|
2023-10-18 21:29:07 -04:00
|
|
|
|
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
|
2023-10-18 21:28:54 -04:00
|
|
|
|
;;;
|
|
|
|
|
;;; 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)
|
2023-10-18 21:28:58 -04:00
|
|
|
|
#:use-module (guix gexp)
|
2023-10-18 21:28:54 -04:00
|
|
|
|
#:use-module (guix git-download)
|
|
|
|
|
#:use-module (gnu packages)
|
|
|
|
|
#:use-module (gnu packages golang))
|
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
;;;
|
2024-01-31 16:43:42 -05:00
|
|
|
|
;;; Golang packages providing tools to unit-test, mock, assert, and lint
|
|
|
|
|
;;; processes for the Golang itself. They may provide executables and
|
|
|
|
|
;;; libraries, for which there are marked sections.
|
2023-10-18 21:28:54 -04:00
|
|
|
|
;;;
|
|
|
|
|
;;; Please: Try to add new module packages in alphabetic order.
|
|
|
|
|
;;;
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
2024-01-31 16:43:42 -05:00
|
|
|
|
;;;
|
|
|
|
|
;;; Libraries:
|
|
|
|
|
;;;
|
2024-01-27 13:21:31 -05:00
|
|
|
|
|
2023-10-18 21:29:12 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:29:05 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:29:06 -04:00
|
|
|
|
(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)))
|
|
|
|
|
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(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)))
|
|
|
|
|
|
2023-10-18 21:29:07 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:29:04 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:28:59 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:28:56 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:29:03 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:29:08 -04:00
|
|
|
|
(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)))
|
|
|
|
|
|
2023-10-18 21:28:55 -04:00
|
|
|
|
(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
|
2023-10-18 21:28:57 -04:00
|
|
|
|
(list go-github-com-davecgh-go-spew
|
|
|
|
|
go-github-com-pmezard-go-difflib
|
|
|
|
|
go-github-com-stretchr-objx
|
|
|
|
|
go-gopkg-in-yaml-v3))
|
2023-10-18 21:28:55 -04:00
|
|
|
|
(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)))
|
|
|
|
|
|
2023-12-31 01:00:20 -05:00
|
|
|
|
(define-public go-github-com-stretchr-testify-bootstrap
|
|
|
|
|
(hidden-package
|
|
|
|
|
(package
|
|
|
|
|
(inherit go-github-com-stretchr-testify)
|
|
|
|
|
(arguments
|
|
|
|
|
'(#:import-path "github.com/stretchr/testify"
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:phases (modify-phases %standard-phases
|
|
|
|
|
(delete 'build))))
|
|
|
|
|
(propagated-inputs
|
|
|
|
|
(list go-gopkg-in-yaml-v3)))))
|
|
|
|
|
|
2023-10-18 21:29:02 -04:00
|
|
|
|
(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)))
|
|
|
|
|
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(define-public go-github.com-smartystreets-assertions
|
2023-10-18 21:28:58 -04:00
|
|
|
|
(package
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(name "go-github.com-smartystreets-assertions")
|
|
|
|
|
(version "1.13.0")
|
2023-10-18 21:28:58 -04:00
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method git-fetch)
|
|
|
|
|
(uri (git-reference
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(url "https://github.com/smartystreets/assertions")
|
|
|
|
|
(commit (string-append "v" version))))
|
2023-10-18 21:28:58 -04:00
|
|
|
|
(file-name (git-file-name name version))
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(sha256 (base32 "0flf3fb6fsw3bk1viva0fzrzw87djaj1mqvrx2gzg1ssn7xzfrzr"))))
|
2023-10-18 21:28:58 -04:00
|
|
|
|
(build-system go-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
(list
|
2024-01-31 16:43:42 -05:00
|
|
|
|
#:import-path "github.com/smartystreets/assertions"
|
2023-10-18 21:28:58 -04:00
|
|
|
|
#: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)))))))
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(native-inputs
|
|
|
|
|
(list go-github.com-smartystreets-gunit))
|
|
|
|
|
(home-page "https://github.com/smartystreets/assertions")
|
|
|
|
|
(synopsis "Assertions for testing with Go")
|
|
|
|
|
(description "The @code{assertions} package provides convenient assertion
|
|
|
|
|
functions for writing tests in Go.")
|
|
|
|
|
(license license:expat)))
|
|
|
|
|
|
|
|
|
|
(define-public go-github.com-smartystreets-goconvey
|
|
|
|
|
(package
|
|
|
|
|
(name "go-github.com-smartystreets-goconvey")
|
|
|
|
|
(version "1.6.3")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method git-fetch)
|
|
|
|
|
(uri (git-reference
|
|
|
|
|
(url "https://github.com/smartystreets/goconvey")
|
|
|
|
|
(commit version)))
|
|
|
|
|
(file-name (git-file-name name version))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32 "1ph18rkl3ns3fgin5i4j54w5a69grrmf3apcsmnpdn1wlrbs3dxh"))))
|
|
|
|
|
(build-system go-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
'(#:import-path "github.com/smartystreets/goconvey"))
|
2023-10-18 21:28:58 -04:00
|
|
|
|
(propagated-inputs
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(list go-github.com-jtolds-gls go-github.com-smartystreets-assertions))
|
|
|
|
|
(home-page "https://github.com/smartystreets/goconvey")
|
|
|
|
|
(synopsis "Go testing tool with both a web and terminal user interface")
|
|
|
|
|
(description "GoConvey is a testing tool for Go. It integrates with go
|
|
|
|
|
test, can show test coverage and has a web user interface that will refresh
|
|
|
|
|
automatically.")
|
|
|
|
|
(license license:expat)))
|
2023-10-18 21:28:58 -04:00
|
|
|
|
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(define-public go-github.com-smartystreets-gunit
|
2023-10-18 21:29:01 -04:00
|
|
|
|
(package
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(name "go-github.com-smartystreets-gunit")
|
|
|
|
|
(version "1.0.0")
|
2023-10-18 21:29:01 -04:00
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method git-fetch)
|
|
|
|
|
(uri (git-reference
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(url "https://github.com/smartystreets/gunit")
|
|
|
|
|
(commit version)))
|
2023-10-18 21:29:01 -04:00
|
|
|
|
(file-name (git-file-name name version))
|
|
|
|
|
(sha256
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(base32 "00m4zg0kdj49mnpmf9klb44ba71p966xsk6zknrzqgfc8119f35z"))))
|
2023-10-18 21:29:01 -04:00
|
|
|
|
(build-system go-build-system)
|
|
|
|
|
(arguments
|
2024-01-31 16:43:42 -05:00
|
|
|
|
'(;; TODO: This package depends on go-github.com-smartystreets-assertions
|
|
|
|
|
;; for running the tests, but go-github.com-smartystreets-assertions
|
|
|
|
|
;; depends on this package, so break this loop by not running the tests
|
|
|
|
|
;; for this package.
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:import-path "github.com/smartystreets/gunit"))
|
|
|
|
|
(home-page "https://github.com/smartystreets/gunit")
|
|
|
|
|
(synopsis "Testing tool for Go, in the style of xUnit")
|
|
|
|
|
(description "@code{gunit} allows the test author to use a struct as the
|
|
|
|
|
scope for a group of related test cases, in the style of xUnit fixtures. This
|
|
|
|
|
makes extraction of setup/teardown behavior (as well as invoking the system
|
|
|
|
|
under test) much simpler.")
|
2023-10-18 21:29:01 -04:00
|
|
|
|
(license license:expat)))
|
|
|
|
|
|
2023-10-18 21:29:11 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2023-10-18 21:29:10 -04:00
|
|
|
|
(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))))
|
|
|
|
|
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(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-honnef-co-go-tools
|
|
|
|
|
(package
|
|
|
|
|
(name "go-honnef-co-go-tools")
|
2024-01-31 16:56:37 -05:00
|
|
|
|
(version "0.4.6")
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(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
|
2024-01-31 16:56:37 -05:00
|
|
|
|
"0qikkhanmc0vrpgvs0c44y853n88m8qqsk08zry6mvm8f41pgjhi"))))
|
2024-01-31 16:43:42 -05:00
|
|
|
|
(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-golang-org-x-exp
|
|
|
|
|
go-golang-org-x-mod
|
|
|
|
|
go-golang-org-x-tools))
|
|
|
|
|
(home-page "https://staticcheck.dev/")
|
|
|
|
|
(synopsis "Staticcheck advanced Go linter library")
|
|
|
|
|
(description
|
|
|
|
|
"This package provides the Go source code for the @code{go-staticcheck}
|
|
|
|
|
advanced Go linter.")
|
|
|
|
|
(license license:expat)))
|
|
|
|
|
|
|
|
|
|
;;;
|
|
|
|
|
;;; Executables:
|
|
|
|
|
;;;
|
|
|
|
|
|
|
|
|
|
(define-public go-keyify
|
|
|
|
|
(package
|
|
|
|
|
(inherit go-honnef-co-go-tools)
|
|
|
|
|
(name "go-keyify")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:import-path "honnef.co/go/tools/cmd/keyify"
|
|
|
|
|
#:unpack-path "honnef.co/go/tools"
|
|
|
|
|
#:install-source? #f))
|
|
|
|
|
(synopsis "Transform an unkeyed struct literal into a keyed one in Go")
|
|
|
|
|
(description "This package turns unkeyed struct literals (@code{T{1, 2,
|
|
|
|
|
3}}) into keyed ones (@code{T{A: 1, B: 2, C: 3}}) in Go.")))
|
|
|
|
|
|
|
|
|
|
(define-public go-staticcheck
|
|
|
|
|
(package
|
|
|
|
|
(inherit go-honnef-co-go-tools)
|
|
|
|
|
(name "go-staticcheck")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:go ,go-1.18
|
|
|
|
|
#:import-path "honnef.co/go/tools/cmd/staticcheck"
|
|
|
|
|
#:unpack-path "honnef.co/go/tools"
|
|
|
|
|
#:install-source? #f))
|
|
|
|
|
(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.")))
|
|
|
|
|
|
|
|
|
|
(define-public go-structlayout
|
|
|
|
|
(package
|
|
|
|
|
(inherit go-honnef-co-go-tools)
|
|
|
|
|
(name "go-structlayout")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:import-path "honnef.co/go/tools/cmd/structlayout"
|
|
|
|
|
#:unpack-path "honnef.co/go/tools"
|
|
|
|
|
#:install-source? #f))
|
|
|
|
|
(synopsis "Display the layout (field sizes and padding) of structs in Go")
|
|
|
|
|
(description "This package prints the layout of a struct in Go, which is
|
|
|
|
|
the byte offset and size of each field, respecting padding. This information
|
|
|
|
|
is printed in human-readable form by default, or as JSON with the @code{-json}
|
|
|
|
|
flag.")))
|
|
|
|
|
|
|
|
|
|
(define-public go-structlayout-optimize
|
|
|
|
|
(package
|
|
|
|
|
(inherit go-honnef-co-go-tools)
|
|
|
|
|
(name "go-structlayout-optimize")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:import-path "honnef.co/go/tools/cmd/structlayout-optimize"
|
|
|
|
|
#:unpack-path "honnef.co/go/tools"
|
|
|
|
|
#:install-source? #f))
|
|
|
|
|
(synopsis "Reorder struct fields to minimize the amount of padding in Go")
|
|
|
|
|
(description "This package reads @code{go-structlayout} JSON on stdin and
|
|
|
|
|
reorders fields to minimize the amount of padding. It can emit JSON to feed
|
|
|
|
|
into @code{go-structlayout-pretty}.")))
|
|
|
|
|
|
|
|
|
|
(define-public go-structlayout-pretty
|
|
|
|
|
(package
|
|
|
|
|
(inherit go-honnef-co-go-tools)
|
|
|
|
|
(name "go-structlayout-pretty")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:import-path "honnef.co/go/tools/cmd/structlayout-pretty"
|
|
|
|
|
#:unpack-path "honnef.co/go/tools"
|
|
|
|
|
#:install-source? #f))
|
|
|
|
|
(synopsis "Format the output of go-structlayout with ASCII art in Go")
|
|
|
|
|
(description "This package takes @code{go-structlayout}-like JSON and
|
|
|
|
|
prints an ASCII fraphic representing the memory layout.")))
|
|
|
|
|
|
2023-10-18 21:28:54 -04:00
|
|
|
|
;;;
|
|
|
|
|
;;; 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.
|
|
|
|
|
;;;
|