From aebc5607942ee5778f2f2908c7f92774786797bb Mon Sep 17 00:00:00 2001 From: FKouhai Date: Mon, 5 May 2025 20:08:09 +0200 Subject: [PATCH] go-mockery: replace tests by versionCheckHook --- pkgs/by-name/go/go-mockery/package.nix | 57 ++++---------------------- 1 file changed, 8 insertions(+), 49 deletions(-) diff --git a/pkgs/by-name/go/go-mockery/package.nix b/pkgs/by-name/go/go-mockery/package.nix index 8946d7fe1bfc..8910fe5c35f6 100644 --- a/pkgs/by-name/go/go-mockery/package.nix +++ b/pkgs/by-name/go/go-mockery/package.nix @@ -2,11 +2,7 @@ lib, buildGoModule, # sync with go below, update to latest release fetchFromGitHub, - - # passthru test - go-mockery, - runCommand, - go, + versionCheckHook, }: buildGoModule rec { @@ -23,59 +19,22 @@ buildGoModule rec { ldflags = [ "-s" "-w" - "-X" - "github.com/vektra/mockery/v${lib.versions.major version}/pkg/logging.SemVer=v${version}" + "-X github.com/vektra/mockery/v${lib.versions.major version}/internal/logging.SemVer=v${version}" ]; env.CGO_ENABLED = false; proxyVendor = true; vendorHash = "sha256-ac9wqHmkmpb1tIkQQ7x8+X+wQ217vsNm4IIidzNlne0="; + doInstallCheck = true; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + versionCheckProgram = "${placeholder "out"}/bin/mockery"; + versionCheckProgramArg = "version"; subPackages = [ "." ]; - preCheck = '' - # check all paths - unset subPackages - - substituteInPlace ./pkg/generator_test.go --replace-fail 0.0.0-dev ${version} - substituteInPlace ./pkg/logging/logging_test.go --replace-fail v0.0 v${lib.versions.majorMinor version} - ''; - - passthru.tests = { - generateMock = - runCommand "${pname}-test" - { - nativeBuildInputs = [ go-mockery ]; - buildInputs = [ go ]; - } - '' - if [[ $(${meta.mainProgram} --version) != *"${version}"* ]]; then - echo "Error: program version does not match package version" - exit 1 - fi - - export HOME=$TMPDIR - - cat < foo.go - package main - - type Foo interface { - Bark() string - } - EOF - - ${meta.mainProgram} --name Foo --dir . - - if [[ ! -f "mocks/Foo.go" ]]; then - echo "Error: mocks/Foo.go was not generated by ${pname}" - exit 1 - fi - - touch $out - ''; - }; - meta = { homepage = "https://github.com/vektra/mockery"; description = "Mock code autogenerator for Golang";