From 031d372ada3b0708f60755ebac756b07cacd5f3e Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 18 Jun 2025 10:57:31 +0300 Subject: [PATCH] Revert "go-mockery: 2.53.3 -> 3.2.5" --- pkgs/by-name/go/go-mockery/package.nix | 65 +++++++++++++++++++++----- 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/go/go-mockery/package.nix b/pkgs/by-name/go/go-mockery/package.nix index 8910fe5c35f6..99cd99afeaaa 100644 --- a/pkgs/by-name/go/go-mockery/package.nix +++ b/pkgs/by-name/go/go-mockery/package.nix @@ -2,39 +2,80 @@ lib, buildGoModule, # sync with go below, update to latest release fetchFromGitHub, - versionCheckHook, + + # passthru test + go-mockery, + runCommand, + go, }: buildGoModule rec { pname = "go-mockery"; - version = "3.2.5"; + version = "2.53.3"; src = fetchFromGitHub { owner = "vektra"; repo = "mockery"; - tag = "v${version}"; - hash = "sha256-QtfiW9yZvqCjKb3wH+QqfD98d7FLDVBQxj2Y/GC6Yhk="; + rev = "v${version}"; + sha256 = "sha256-X0cHpv4o6pzgjg7+ULCuFkspeff95WFtJbVHqy4LxAg="; }; ldflags = [ "-s" "-w" - "-X github.com/vektra/mockery/v${lib.versions.major version}/internal/logging.SemVer=v${version}" + "-X" + "github.com/vektra/mockery/v${lib.versions.major version}/pkg/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"; + vendorHash = "sha256-AQY4x2bLqMwHIjoKHzEm1hebR29gRs3LJN8i00Uup5o="; 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";