diff --git a/library.sh b/library.sh index 798abc27..9cd2adc7 100755 --- a/library.sh +++ b/library.sh @@ -138,16 +138,22 @@ function calcRetcode() { echo "$rc" } +# Print error message. +# Parameters: $* - error message to be displayed +function error() { + gum_style \ + --foreground '#D00' \ + --padding '1 3' \ + --border double \ + --border-foreground '#D00' \ + "ERROR: $*" +} + # Print error message and call exit(n) where n calculated from the error message. # Parameters: $1..$n - error message to be displayed # Globals: abort_retcode will change the default retcode to be returned function abort() { - gum_style \ - --foreground '#D00' \ - --padding '1 3' \ - --border double \ - --border-foreground '#D00' \ - "ERROR: $*" + error "$*" readonly abort_retcode="${abort_retcode:-$(calcRetcode "$*")}" exit "$abort_retcode" } @@ -169,7 +175,8 @@ function make_banner() { # Simple header for logging purposes. function header() { - local upper="$(echo "$*" | tr a-z A-Z)" + local upper + upper="$(echo "$*" | tr '[:lower:]' '[:upper:]')" gum_style \ --padding '1 3' \ --border double \ diff --git a/test/e2e/apis/hack/register.go b/test/codegen/testdata/apis/hack/register.go similarity index 100% rename from test/e2e/apis/hack/register.go rename to test/codegen/testdata/apis/hack/register.go diff --git a/test/e2e/apis/hack/v1alpha1/doc.go b/test/codegen/testdata/apis/hack/v1alpha1/doc.go similarity index 100% rename from test/e2e/apis/hack/v1alpha1/doc.go rename to test/codegen/testdata/apis/hack/v1alpha1/doc.go diff --git a/test/e2e/apis/hack/v1alpha1/example_types.go b/test/codegen/testdata/apis/hack/v1alpha1/example_types.go similarity index 100% rename from test/e2e/apis/hack/v1alpha1/example_types.go rename to test/codegen/testdata/apis/hack/v1alpha1/example_types.go diff --git a/test/e2e/apis/hack/v1alpha1/register.go b/test/codegen/testdata/apis/hack/v1alpha1/register.go similarity index 97% rename from test/e2e/apis/hack/v1alpha1/register.go rename to test/codegen/testdata/apis/hack/v1alpha1/register.go index c66a84cd..04ec86a7 100644 --- a/test/e2e/apis/hack/v1alpha1/register.go +++ b/test/codegen/testdata/apis/hack/v1alpha1/register.go @@ -20,8 +20,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - - "knative.dev/hack/test/e2e/apis/hack" + "knative.dev/hack/test/codegen/testdata/apis/hack" ) // SchemeGroupVersion is group version used to register these objects diff --git a/test/e2e/apis/hack/v1alpha1/zz_generated.deepcopy.go b/test/codegen/testdata/apis/hack/v1alpha1/zz_generated.deepcopy.go similarity index 100% rename from test/e2e/apis/hack/v1alpha1/zz_generated.deepcopy.go rename to test/codegen/testdata/apis/hack/v1alpha1/zz_generated.deepcopy.go diff --git a/test/hack/update-codegen.sh b/test/hack/update-codegen.sh index ffe61cf2..b25c7365 100755 --- a/test/hack/update-codegen.sh +++ b/test/hack/update-codegen.sh @@ -22,7 +22,7 @@ relative_rootdir="$(realpath -s --relative-to="$PWD" "$rootdir")" source "$(go run "${relative_rootdir}/cmd/script" codegen-library.sh)" generate-groups deepcopy \ - knative.dev/hack/test/e2e/apis/hack/v1alpha1/generated \ - knative.dev/hack/test/e2e/apis \ + knative.dev/hack/test/codegen/testdata/apis/hack/v1alpha1 \ + knative.dev/hack/test/codegen/testdata/apis \ hack:v1alpha1 \ "$@" diff --git a/test/hack/verify-codegen.sh b/test/hack/verify-codegen.sh new file mode 100755 index 00000000..72b6ee76 --- /dev/null +++ b/test/hack/verify-codegen.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# Copyright 2024 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -Eeuo pipefail + +rootdir="$(realpath "$(dirname "${BASH_SOURCE[0]:-$0}")/../..")" +cd "${rootdir}" + +# shellcheck disable=SC1090 +source "$(go run ./cmd/script library.sh)" + +./test/hack/update-codegen.sh + +if ! git diff --exit-code; then + abort "codegen is out of date, please run test/hack/update-codegen.sh, and commit the changes." +fi + +header "Codegen is up to date" diff --git a/test/presubmit-tests.sh b/test/presubmit-tests.sh index cf0b34a3..e539a148 100755 --- a/test/presubmit-tests.sh +++ b/test/presubmit-tests.sh @@ -34,7 +34,7 @@ function post_build_tests() { local failed=0 for script in *.sh; do subheader "Checking integrity of ${script}" - bash -c "source ${script}" || { failed=1; echo "--- FAIL: ${script}"; } + bash -c "source ${script}" || { failed=1; error "${script}"; } done return ${failed} }