Compare commits

..

13 commits

Author SHA1 Message Date
Packit
a905a947ee Update to 1.23.9 upstream release
Upstream tag: go1.23.9
Upstream commit: f77084d1

Commit authored by Packit automation (https://packit.dev/)
2025-05-07 07:25:25 +00:00
Packit
21611bc83e Update to 1.23.8 upstream release
Upstream tag: go1.23.8
Upstream commit: 7a2cfb70

Commit authored by Packit automation (https://packit.dev/)
2025-04-14 10:29:10 +00:00
Packit
72f7755318 Update to 1.22.12 upstream release
Upstream tag: go1.22.12
Upstream commit: 5817e650

Commit authored by Packit automation (https://packit.dev/)
2025-02-05 20:57:22 +00:00
Mike Rochefort
eef8ac2d9f Update to 1.22.11 upstream release
Upstream tag: go1.22.11
Upstream commit: f0728843
2025-01-19 00:59:00 -05:00
Packit
cb6e62c4f0 Update to 1.22.10 upstream release
Upstream tag: go1.22.10
Upstream commit: 8f3f22ee

Commit authored by Packit automation (https://packit.dev/)
2024-12-04 13:30:40 +00:00
Packit
4accc997c7 Update to 1.22.9 upstream release
Upstream tag: go1.22.9
Upstream commit: 8af39d30

Commit authored by Packit automation (https://packit.dev/)
2024-11-07 08:20:45 +00:00
Packit
f99f8389d0 Update to 1.22.7 upstream release
Upstream tag: go1.22.7
Upstream commit: 7529d09a

Commit authored by Packit automation (https://packit.dev/)
2024-09-13 10:48:57 +00:00
Mike Rochefort
87ba7f4a89 Update to 1.22.6 upstream release 2024-08-09 13:18:15 -04:00
Packit
2f2431d65a Update to 1.22.5 upstream release
- Resolves: rhbz#2295486

Upstream tag: go1.22.5
Upstream commit: 8e1fdea8

Commit authored by Packit automation (https://packit.dev/)
2024-07-07 10:20:43 +00:00
Packit
2da2c24b9a Update to 1.22.4 upstream release
- Resolves: rhbz#2290444

Upstream tag: go1.22.4
Upstream commit: ace5bb40

Commit authored by Packit automation (https://packit.dev/)
2024-06-04 20:47:37 +00:00
Packit
1d46a45e9a Update to 1.22.3 upstream release
- Resolves: rhbz#2279598

Upstream tag: go1.22.3
Upstream commit: adbfb672

Commit authored by Packit automation (https://packit.dev/)
2024-05-08 13:27:20 +00:00
Packit
5db80dfbc3 Update to 1.22.2 upstream release
- Resolves: rhbz#2272998

Upstream tag: go1.22.2
Upstream commit: dddf0ae4

Commit authored by Packit automation (https://packit.dev/)
2024-04-03 16:16:57 +00:00
Packit
b1a2ca6934 [packit] 1.22.1 upstream release
Upstream tag: go1.22.1
Upstream commit: db6097f8
2024-03-06 08:27:18 +00:00
17 changed files with 247 additions and 212 deletions

34
.gitignore vendored
View file

@ -150,28 +150,12 @@
/go1.22.2.src.tar.gz
/go1.22.3.src.tar.gz
/go1.22.4.src.tar.gz
/go1.23rc1.src.tar.gz
/go1.23rc2.src.tar.gz
/go1.23.0.src.tar.gz
/go1.23.1.src.tar.gz
/go1.23.2.src.tar.gz
/go1.23.3.src.tar.gz
/go1.23.4.src.tar.gz
/go1.24rc1.src.tar.gz
/go1.24rc2.src.tar.gz
/go1.24rc3.src.tar.gz
/go1.24.0.src.tar.gz
/go1.24.1.src.tar.gz
/go1.24.2.src.tar.gz
/go1.24.3.src.tar.gz
/go1.24.4.src.tar.gz
/go1.24.5.src.tar.gz
/go1.25rc1.src.tar.gz
/go1.25rc2.src.tar.gz
/go1.25.0.src.tar.gz
/go1.25.1.src.tar.gz
/go1.25.2.src.tar.gz
/go1.25.3.src.tar.gz
/go1.25.4.src.tar.gz
/go1.25.5.src.tar.gz
/go1.26rc1.src.tar.gz
/go1.22.5.src.tar.gz
/go1.22.6.src.tar.gz
/go1.22.7.src.tar.gz
/go1.22.9.src.tar.gz
/go1.22.10.src.tar.gz
/go1.22.11.src.tar.gz
/go1.22.12.src.tar.gz
/go1.23.8.src.tar.gz
/go1.23.9.src.tar.gz

View file

@ -12,23 +12,23 @@ actions:
- bash -c "echo - New release ${PACKIT_PROJECT_VERSION}"
jobs:
# Fedora 42 follows Go 1.24
# Fedora 38 follows Go 1.20
- job: pull_from_upstream
trigger: release
dist_git_branches: fedora-42
upstream_tag_include: "^go1.24.+"
dist_git_branches: fedora-38
upstream_tag_include: "^go1.20.+"
# Fedora 43 follows Go 1.25
# Fedora 39 follows Go 1.21
- job: pull_from_upstream
trigger: release
dist_git_branches: fedora-43
upstream_tag_include: "^go1.25.+"
dist_git_branches: fedora-39
upstream_tag_include: "^go1.21.+"
# Fedora Rawhide follows the latest version
- job: pull_from_upstream
trigger: release
dist_git_branches: fedora-rawhide
upstream_tag_include: "^go1.26.+"
upstream_tag_include: "^go1.22.+"
# Run Koji builds when Packit pull requests are merged
- job: koji_build

View file

@ -1,42 +1,30 @@
From 39432f71436c41201450a523dc41035c92d27569 Mon Sep 17 00:00:00 2001
From: Maxwell G <maxwell@gtmx.me>
Date: Thu, 24 Jul 2025 12:23:59 -0500
From 52d9cfec8124a9c7382bed5284246d9b18a21eb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
Date: Wed, 16 Aug 2023 07:06:38 +0200
Subject: [PATCH] Modify go.env
Change GOPROXY, GOSUMDB, and GOTOOLCHAIN
---
go.env | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
go.env | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/go.env b/go.env
index 6ff2b92..5508440 100644
index 6ff2b921d4..087208cd7c 100644
--- a/go.env
+++ b/go.env
@@ -4,9 +4,24 @@
@@ -4,9 +4,9 @@
# Use the Go module mirror and checksum database by default.
# See https://proxy.golang.org for details.
+#
+# NOTE(downstream): We used to disable the Google Go proxy with GOPROXY=direct and
+# disable the GOSUMDB for historical and priavcy reasons, but it caused severe
+# performance degradations, so we reverted to the default upstream configuration.
+# as of https://fedoraproject.org/wiki/Changes/golang1.25.
+# To preserve the previous behavior, set "GOPROXY=direct" and "GOSUMDB=off".
GOPROXY=https://proxy.golang.org,direct
GOSUMDB=sum.golang.org
-GOPROXY=https://proxy.golang.org,direct
-GOSUMDB=sum.golang.org
+GOPROXY=direct
+GOSUMDB=off
# Automatically download newer toolchains as directed by go.mod files.
# See https://go.dev/doc/toolchain for details.
-GOTOOLCHAIN=auto
+#
+# NOTE(downstream): We change this default from auto to local so that the
+# distribution-packaged Go toolchain is always used and go doesn't
+# automatically download pre-compiled alternative versions.
+GOTOOLCHAIN=local
+
+# NOTE(downstream): https://sourceware.org/bugzilla/show_bug.cgi?id=33204
+# The dwarf5 data emitted by default in Go 1.25+ is incompatible with debugedit
+# and breaks debugdata collection.
+GOEXPERIMENT=nodwarf5
--
2.50.1
2.41.0

View file

@ -0,0 +1,35 @@
From 7506da0af38aa307f45664f0c787b5767cc7a87f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
Date: Thu, 22 Jun 2023 17:19:00 +0200
Subject: [PATCH] Force gold in aarch64 until binutils 2.41 is on Fedora
---
src/cmd/link/internal/ld/lib.go | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index 91e2d5149c..99c305530b 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -1605,15 +1605,13 @@ func (ctxt *Link) hostlink() {
// https://go.dev/issue/22040
altLinker = "gold"
- // If gold is not installed, gcc will silently switch
- // back to ld.bfd. So we parse the version information
- // and provide a useful error if gold is missing.
+ // In both cases, switch to gold if gold is available.
name, args := flagExtld[0], flagExtld[1:]
args = append(args, "-fuse-ld=gold", "-Wl,--version")
cmd := exec.Command(name, args...)
if out, err := cmd.CombinedOutput(); err == nil {
- if !bytes.Contains(out, []byte("GNU gold")) {
- log.Fatalf("ARM64 external linker must be gold (issue #15696, 22040), but is not: %s", out)
+ if bytes.Contains(out, []byte("GNU gold")) {
+ altLinker = "gold"
}
}
}
--
2.40.1

View file

@ -1,46 +0,0 @@
From 46ec67413008607e2150e3395668e54e538c5b6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
Date: Wed, 19 Jun 2024 10:18:58 +0200
Subject: [PATCH] Default to ld.bfd on ARM64
---
src/cmd/link/internal/ld/lib.go | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index eab74dc328..b401f58727 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -1620,22 +1620,16 @@ func (ctxt *Link) hostlink() {
}
if ctxt.Arch.InFamily(sys.ARM64) && buildcfg.GOOS == "linux" {
- // On ARM64, the GNU linker will fail with
- // -znocopyreloc if it thinks a COPY relocation is
- // required. Switch to gold.
- // https://sourceware.org/bugzilla/show_bug.cgi?id=19962
- // https://go.dev/issue/22040
- altLinker = "gold"
-
- // If gold is not installed, gcc will silently switch
- // back to ld.bfd. So we parse the version information
- // and provide a useful error if gold is missing.
+ // Use ld.bfd as the default linker
+ altLinker = "bfd"
+
+ // Provide a useful error if ld.bfd is missing
name, args := flagExtld[0], flagExtld[1:]
- args = append(args, "-fuse-ld=gold", "-Wl,--version")
+ args = append(args, "-fuse-ld=bfd", "-Wl,--version")
cmd := exec.Command(name, args...)
if out, err := cmd.CombinedOutput(); err == nil {
- if !bytes.Contains(out, []byte("GNU gold")) {
- log.Fatalf("ARM64 external linker must be gold (issue #15696, 22040), but is not: %s", out)
+ if !bytes.Contains(out, []byte("GNU ld")) {
+ log.Fatalf("ARM64 external linker must be ld.bfd, but is not: %s", out)
}
}
}
--
2.45.1

View file

@ -1,3 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 1.12.0.post1.dev20+g7d30dac21.
The file was generated using packit 1.6.0.post1.dev2+gd5a7662a.

View file

@ -1,4 +1,4 @@
#!/bin/bash
#! /bin/bash
# Copyright (C) 2021 Jakub Čajka jcajka@redhat.com
#
# This program is free software; you can redistribute it and/or
@ -16,14 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
provides=""
for bundle in $(find -name modules.txt); do
provides="$provides\n$(cat "$bundle" |
grep "^# " |
grep -v "# explicit" |
sed -r s/"^#.* => "// |
sed -r "s/# //" |
sed -r "s:(.*) v(.*):Provides\: bundled(golang(\1)) = \2:" |
sed '/= .*/s/-/./g')"
done
provides="$provides\n$(cat "$bundle" | grep "^# " | grep -v "# explicit" | sed -r s/"^#.* => "// | sed -r "s/# //" | sed -r "s:(.*) v(.*):Provides\: bundled(golang(\1)) = \2:")"
done
echo -e "$provides" | sed 's/-/./g' | sort -u

View file

@ -1,9 +1,5 @@
//go:build rpm_crashtraceback
// +build rpm_crashtraceback
// Copyright 2017 The Fedora Project Contributors. All rights reserved.
// Use of this source code is governed by the MIT license.
package runtime
func init() {

View file

@ -1,25 +0,0 @@
From 5f566346b70403891cfc52d0c807d72335691708 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
Date: Wed, 15 Jan 2025 21:45:33 +0100
Subject: [PATCH] Fix _cgo_panic with gcc15 in 368
---
src/cmd/link/internal/x86/asm.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cmd/link/internal/x86/asm.go b/src/cmd/link/internal/x86/asm.go
index d535e5fb4d..c4253a8c08 100644
--- a/src/cmd/link/internal/x86/asm.go
+++ b/src/cmd/link/internal/x86/asm.go
@@ -184,7 +184,7 @@ func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade
return true
}
- if r.Off() >= 2 && sData[r.Off()-2] == 0xff && sData[r.Off()-1] == 0xb3 {
+ if r.Off() >= 2 && sData[r.Off()-2] == 0xff && sData[r.Off()-1] >= 0xb0 && sData[r.Off()-1] <= 0xb7 {
su.MakeWritable()
// turn PUSHL of GOT entry into PUSHL of symbol itself.
// use unnecessary SS prefix to keep instruction same length.
--
2.47.1

View file

@ -1,5 +1,4 @@
%bcond_with bootstrap
# build ids are not currently generated:
# https://code.google.com/p/go/issues/detail?id=5238
#
@ -32,14 +31,14 @@
# Golang build options.
# Build golang using external/internal(close to cgo disabled) linking.
%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x riscv64
%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x
%global external_linker 1
%else
%global external_linker 0
%endif
# Build golang with cgo enabled/disabled(later equals more or less to internal linking).
%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x riscv64
%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x
%global cgo_enabled 1
%else
%global cgo_enabled 0
@ -94,18 +93,15 @@
%ifarch s390x
%global gohostarch s390x
%endif
%ifarch riscv64
%global gohostarch riscv64
%endif
# Comment out go_prerelease and go_patch as needed
%global go_api 1.26
%global go_prerelease rc1
#global go_patch 1
%global go_api 1.23
#global go_prerelease rc2
%global go_patch 9
%global go_version %{go_api}%{?go_patch:.%{go_patch}}%{?go_prerelease:~%{go_prerelease}}
%global go_source %{go_api}%{?go_patch:.%{go_patch}}%{?go_prerelease}
Name: golang
Version: %{go_version}
Release: %autorelease
@ -123,41 +119,37 @@ BuildRequires: gcc-go >= 5
%else
BuildRequires: golang > 1.4
%endif
%if 0%{?rhel} > 6 || 0%{?fedora} > 0
BuildRequires: hostname
%else
BuildRequires: net-tools
%endif
# for tests
BuildRequires: pcre2-devel, glibc-static, perl-interpreter, procps-ng
Provides: go = %{version}-%{release}
# Bundled/Vendored provides generated by bundled-deps.sh based on the in tree module data
Provides: bundled(golang(github.com/google/pprof)) = 0.0.0.20251114195745.4902fdda35c8
Provides: bundled(golang(github.com/ianlancetaylor/demangle)) = 0.0.0.20250417193237.f615e6bd150b
Provides: bundled(golang(golang.org/x/arch)) = 0.23.0
Provides: bundled(golang(golang.org/x/build)) = 0.0.0.20251128064159.b9bfd88b30e8
Provides: bundled(golang(golang.org/x/crypto)) = 0.46.1.0.20251210140736.7dacc380ba00
Provides: bundled(golang(golang.org/x/mod)) = 0.30.1.0.20251115032019.269c237cf350
Provides: bundled(golang(golang.org/x/net)) = 0.47.1.0.20251128220604.7c360367ab7e
Provides: bundled(golang(golang.org/x/sync)) = 0.19.0
Provides: bundled(golang(golang.org/x/sys)) = 0.39.0
Provides: bundled(golang(golang.org/x/telemetry)) = 0.0.0.20251128220624.abf20d0e57ec
Provides: bundled(golang(golang.org/x/term)) = 0.38.0
Provides: bundled(golang(golang.org/x/text)) = 0.32.0
Provides: bundled(golang(golang.org/x/tools)) = 0.27.0
Provides: bundled(golang(golang.org/x/tools)) = 0.39.1.0.20251205000126.062ef7b6ced2
Provides: bundled(golang(rsc.io/markdown)) = 0.0.0.20240306144322.0bf8f97ee8ef
Provides: bundled(golang(github.com/google/pprof)) = 0.0.0.20230811205829.9131a7e9cc17
Provides: bundled(golang(github.com/ianlancetaylor/demangle)) = 0.0.0.20230524184225.eabc099b10ab
Provides: bundled(golang(golang.org/x/arch)) = 0.6.0
Provides: bundled(golang(golang.org/x/crypto)) = 0.16.1.0.20231129163542.152cdb1503eb
Provides: bundled(golang(golang.org/x/mod)) = 0.14.0
Provides: bundled(golang(golang.org/x/net)) = 0.19.1.0.20240412193750.db050b07227e
Provides: bundled(golang(golang.org/x/sync)) = 0.5.0
Provides: bundled(golang(golang.org/x/sys)) = 0.15.0
Provides: bundled(golang(golang.org/x/term)) = 0.15.0
Provides: bundled(golang(golang.org/x/text)) = 0.14.0
Provides: bundled(golang(golang.org/x/tools)) = 0.16.2.0.20231218185909.83bceaf2424d
Requires: %{name}-bin = %{version}-%{release}
Requires: %{name}-src = %{version}-%{release}
Requires: go-filesystem
Patch1: 0001-Modify-go.env.patch
Patch5: 0005-Skip-TestCrashDumpsAllThreads.patch
Patch6: 0006-Default-to-ld.bfd-on-ARM64.patch
# Related to https://gcc.gnu.org/PR118497
Patch8: fix_cgo_panic-with-gcc15-in-368.patch
# Related to https://github.com/golang/go/issues/74476
Patch9: skip_lsan_tests.patch
Patch4: 0004-cmd-link-use-gold-on-ARM-ARM64-only-if-gold-is-avail.patch
Patch5: 0005-Skip-TestCrashDumpsAllThreads.patch
# Having documentation separate was broken
Obsoletes: %{name}-docs < 1.1-4
@ -252,8 +244,11 @@ Requires(preun): %{_sbindir}/update-alternatives
# This is an odd issue, still looking for a better fix.
Requires: glibc
Requires: gcc
Recommends: git-core, subversion, mercurial
%if 0%{?rhel} && 0%{?rhel} < 8
Requires: git, subversion, mercurial
%else
Recommends: git, subversion, mercurial
%endif
%description bin
%{summary}
@ -393,7 +388,7 @@ echo "== 4 =="
echo "%%{goroot}/$file" >> $shared_list
echo "%%{golibdir}/$(basename $file)" >> $shared_list
done
find pkg/*_dynlink/ -type d -printf '%%%dir %{goroot}/%p\n' >> $shared_list
find pkg/*_dynlink/ ! -type d -printf '%{goroot}/%p\n' >> $shared_list
%endif
@ -462,12 +457,7 @@ export CGO_ENABLED=0
#endif
# make sure to not timeout
%ifnarch riscv64
export GO_TEST_TIMEOUT_SCALE=2
%else
# NOTE(davidlt): 20 is probably too much, but it's only for riscv and it works
export GO_TEST_TIMEOUT_SCALE=20
%endif
%if %{fail_on_tests}
./run.bash --no-rebuild -v -v -v -k
@ -498,8 +488,6 @@ fi
%dir %{goroot}
%{goroot}/api/
%{goroot}/lib/time/
%{goroot}/lib/wasm/
%{goroot}/lib/fips140/
# ensure directory ownership, so they are cleaned up if empty
%dir %{gopath}

View file

@ -1,6 +1,5 @@
summary: CI Gating Plan
discover:
how: fmf
url: https://src.fedoraproject.org/tests/golang
execute:
how: tmt

View file

@ -1,25 +0,0 @@
From 958f06663d81dd4b946fce963b9f985f68da6212 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
Date: Wed, 16 Jul 2025 13:14:03 +0200
Subject: [PATCH] Skip lsan_test.go in aarch64
Reference: https://github.com/golang/go/issues/74476
---
src/cmd/cgo/internal/testsanitizers/lsan_test.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cmd/cgo/internal/testsanitizers/lsan_test.go b/src/cmd/cgo/internal/testsanitizers/lsan_test.go
index 4dde3d20ec..3bcf0eba51 100644
--- a/src/cmd/cgo/internal/testsanitizers/lsan_test.go
+++ b/src/cmd/cgo/internal/testsanitizers/lsan_test.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-//go:build linux || (freebsd && amd64)
+//go:build (linux && !(arm64 || riscv64)) || (freebsd && amd64)
package sanitizers_test
--
2.50.1

View file

@ -1 +1 @@
SHA512 (go1.26rc1.src.tar.gz) = 6696ee765dcde64b830b14e20a5fdf6324916211bff80a62d0db0cbef58bb0856f02e88e95b2f1a3ad6d9282ebd04a377a0b000d56849576caedbd526c9a7923
SHA512 (go1.23.9.src.tar.gz) = 0f80680caabbf50a4f55555d0515530c55e297f38bf193a9da531e640f069719e3c7a5670b72f7629fada8162f978305ae1e4e6398369b8021cfe6dc9157254a

View file

@ -0,0 +1,64 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/golang/Sanity/basic-smoke
# Description: basic smoke test for go
# Author: Edjunior Machado <emachado@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 Red Hat, Inc.
#
# This program 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 2 of
# the License, or (at your option) any later version.
#
# This program 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 this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/tools/golang/Sanity/basic-smoke
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Edjunior Machado <emachado@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: basic smoke test for go" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: golang" >> $(METADATA)
@echo "Requires: golang" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHEL6 -RHELClient5 -RHELServer5" >> $(METADATA)
@echo "Architectures: s390x x86_64 ppc64le aarch64" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /tools/golang/Sanity/basic-smoke
Description: basic smoke test for go
Author: Edjunior Machado <emachado@redhat.com>

View file

@ -0,0 +1,13 @@
summary: basic smoke test for go
description: ''
contact:
- Edjunior Machado <emachado@redhat.com>
component:
- golang
test: ./runtest.sh
framework: beakerlib
recommend:
- golang
duration: 5m
extra-summary: /tools/golang/Sanity/basic-smoke
extra-task: /tools/golang/Sanity/basic-smoke

View file

@ -0,0 +1,68 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/golang/Sanity/basic-smoke
# Description: basic smoke test for go
# Author: Edjunior Machado <emachado@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 Red Hat, Inc.
#
# This program 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 2 of
# the License, or (at your option) any later version.
#
# This program 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 this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="$(rpm -qf $(which go))"
# Conserve the non-zero return value through the pipe
set -o pipefail
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
cat << EOF > $TmpDir/hello.go
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
EOF
rlAssertExists "$TmpDir/hello.go"
rlRun "go run $TmpDir/hello.go |& tee $TmpDir/go-run-hello.out" 0 "Testing 'go run'"
rlAssertNotDiffer <(echo 'hello world') go-run-hello.out
rlRun "go build -o $TmpDir/hello $TmpDir/hello.go" 0 "Testing 'go build'"
rlAssertExists "hello"
rlRun "$TmpDir/hello |& tee $TmpDir/hello.out" 0 "Running binary"
rlAssertNotDiffer <(echo 'hello world') hello.out
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd