Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bash/daml-export
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ options::add -o e -d "Stop offset(exclusive) in hex" -a -m -e STOP_OFFSET
options::add -o P -d "maximum number of compiles to run in parallel" -a -e MAX_PARALLEL
options::add -o b -d "Start offset in hex" -a -e START_OFFSET
options::add -o s -d "number of offsets to cover in each export" -a -e STEPPING
options::add -o h -d "daml host" -a -e DAML_HOST
options::add -o H -d "daml host" -a -e DAML_HOST
options::add -o p -d "daml port" -a -e DAML_PORT
options::add -o t -d "daml token" -a -e DAML_TOKEN
options::add -o z -d "acs batch size" -a -e ACS_BATCH_SIZE
Expand Down
2 changes: 1 addition & 1 deletion bash/review-prs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ options::add -o i -d "organization to scan only if we have a repo cloned. repeat
options::add -o g -d "git repositories directory" -a -e GIT_HOME
options::add -o w -d "open pr list in the browser" -x OPEN_BROWSER

options::parse "$@"
options::parse_available "$@"
shift $((OPTIND - 1))

OPEN_BROWSER=${OPEN_BROWSER:-false}
Expand Down
4 changes: 4 additions & 0 deletions bash/semver
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,10 @@ function command-compare() {
}

function command-diff() {
if [[ "$#" -ne "2" ]] || [[ -z "$1" ]] || [[ -z "$2" ]]; then
usage-help
fi

validate-version "$1" v1_parts
# shellcheck disable=SC2154
local v1_major="${v1_parts[0]}"
Expand Down
1 change: 1 addition & 0 deletions tests/copy-keys.bats
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env bats
bats_require_minimum_version 1.5.0

setup() {
load 'helpers.bash'
Expand Down
20 changes: 20 additions & 0 deletions tests/daml-export.bats
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,26 @@ EOF
[[ "$output" != *"Exporting from offset"* ]]
}

@test "daml-export -h prints standard help (SUR-3645)" {
run env DAML_EXPORT_SOURCE_ONLY=true bash "$DAML_EXPORT" -h
[ "$status" -ne 0 ]
[[ "$output" == *"SYNTAX"* ]]
[[ "$output" == *"daml-export [-h] [-v] -d <arg> -e <arg>"* ]]
[[ "$output" == *"-H <arg>"* ]]
[[ "$output" != *"option requires an argument -- h"* ]]
}

@test "daml-export -H sets DAML_HOST (SUR-3645)" {
tmp=$(mktemp -d)
run bash -c "
source '$DAML_EXPORT' -d '$tmp' -e ffff -H ledger.internal
printf '%s\n' \"\$DAML_HOST\"
"
rm -rf "$tmp"
[ "$status" -eq 0 ]
[ "$output" = "ledger.internal" ]
}

@test "hex_to_dec converts hex strings to decimal (SUR-2838 case 1)" {
tmp=$(mktemp -d)
run bash -c "
Expand Down
14 changes: 11 additions & 3 deletions tests/package.bats
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,24 @@
bats_require_minimum_version 1.5.0

setup() {
MAKE_BIN=$(asdf which make 2>/dev/null || command -v make)
load 'helpers.bash'
helpers::isolate_home
PACKAGE_REPO=$(mktemp -d)
cp -a "$REPO_ROOT"/. "$PACKAGE_REPO"/
cd "$PACKAGE_REPO" || exit 1
}

teardown() {
rm -rf "$PACKAGE_REPO"
}

@test "bin package includes standalone executable commands mddoc and semver (SUR-3353)" {
run make clean package
run "$MAKE_BIN" clean package
[ "$status" -eq 0 ]

version=$(make --no-print-directory what_version | awk -F= '/^VERSION=/{print $2}')
tarball="$REPO_ROOT/dist/bin-$version.tar.gz"
version=$("$MAKE_BIN" --no-print-directory what_version | awk -F= '/^VERSION=/{print $2}')
tarball="$PACKAGE_REPO/dist/bin-$version.tar.gz"
[ -f "$tarball" ]

run tar -tzf "$tarball"
Expand Down
87 changes: 87 additions & 0 deletions tests/review-prs.bats
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,54 @@ setup() {
export TARGET
}

function write_review_prs_stubs() {
local stub_bin=${1:?}
local log_file=${2:?}

cat >"$stub_bin/gh" <<'EOF'
#!/usr/bin/env bash
echo "$*" >>"${REVIEW_PRS_STUB_LOG:?}"
if [ "$1" = "search" ] && [ "$2" = "repos" ]; then
owner=""
while [ "$#" -gt 0 ]; do
if [ "$1" = "--owner" ]; then
owner="$2"
shift 2
continue
fi
shift
done
printf '[{"name":"%s-repo"}]\n' "$owner"
exit 0
fi
if [ "$1" = "pr" ] && [ "$2" = "list" ] && [ "$3" = "--draft=false" ]; then
printf '[{"reviewDecision":"APPROVED"}]\n'
exit 0
fi
if [ "$1" = "pr" ] && [ "$2" = "list" ]; then
exit 0
fi
exit 0
EOF
chmod +x "$stub_bin/gh"

cat >"$stub_bin/jq" <<'EOF'
#!/usr/bin/env bash
python3 -c '
import json, sys
data = json.load(sys.stdin)
expr = sys.argv[-1]
if expr == ".[].name":
for item in data:
print(item["name"])
elif expr == ".[].reviewDecision":
for item in data:
print(item["reviewDecision"])
' "$@"
EOF
chmod +x "$stub_bin/jq"
}

@test "review-prs defines a ::jq shim" {
run grep -E '^function ::jq\(\)' "$TARGET"
[ "$status" -eq 0 ]
Expand Down Expand Up @@ -40,3 +88,42 @@ setup() {
[[ "$output" == *"jq is either not installed or not on the PATH"* ]]
[[ "$output" != *"-r: command not found"* ]]
}

@test "review-prs bare invocation scans default organizations (SUR-3646)" {
stub_bin=$(mktemp -d)
log_file=$(mktemp)
mkdir -p "$HOME/git/hyperledger/hyperledger-repo"
write_review_prs_stubs "$stub_bin" "$log_file"

run env PATH="$stub_bin:$PATH" REVIEW_PRS_STUB_LOG="$log_file" LOGFILE_DISABLE=true \
bash "$TARGET"
[ "$status" -eq 0 ]
[[ "$(cat "$log_file")" == *"search repos --owner 391agency --archived=false --json name"* ]]
[[ "$(cat "$log_file")" == *"search repos --owner btpworks --archived=false --json name"* ]]
[[ "$(cat "$log_file")" == *"search repos --owner blockchaintp --archived=false --json name"* ]]
[[ "$(cat "$log_file")" == *"search repos --owner catenasys --archived=false --json name"* ]]
[[ "$(cat "$log_file")" == *"search repos --owner hyperledger --archived=false --json name"* ]]
[[ "$(cat "$log_file")" == *"pr list --draft=false --repo 391agency/391agency-repo --json reviewDecision"* ]]
[[ "$(cat "$log_file")" == *"pr list --draft=false --repo hyperledger/hyperledger-repo --json reviewDecision"* ]]

rm -rf "$stub_bin"
rm -f "$log_file"
}

@test "review-prs honors explicit -o and -i arguments (SUR-3646)" {
stub_bin=$(mktemp -d)
log_file=$(mktemp)
mkdir -p "$HOME/git/focused/focused-repo"
write_review_prs_stubs "$stub_bin" "$log_file"

run env PATH="$stub_bin:$PATH" REVIEW_PRS_STUB_LOG="$log_file" LOGFILE_DISABLE=true \
bash "$TARGET" -o direct -i focused
[ "$status" -eq 0 ]
[[ "$(cat "$log_file")" == *"search repos --owner direct --archived=false --json name"* ]]
[[ "$(cat "$log_file")" == *"search repos --owner focused --archived=false --json name"* ]]
[[ "$(cat "$log_file")" != *"search repos --owner 391agency --archived=false --json name"* ]]
[[ "$(cat "$log_file")" != *"search repos --owner hyperledger --archived=false --json name"* ]]

rm -rf "$stub_bin"
rm -f "$log_file"
}
16 changes: 16 additions & 0 deletions tests/semver.bats
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,22 @@ setup() {
[ "$output" = "" ]
}

@test "diff with no versions prints usage instead of nounset error (SUR-3647)" {
run "$SEMVER" diff
[ "$status" -ne 0 ]
[[ "$output" == *"Usage:"* ]]
[[ "$output" == *"semver diff <version> <other_version>"* ]]
[[ "$output" != *"unbound variable"* ]]
}

@test "diff with one version prints usage instead of nounset error (SUR-3647)" {
run "$SEMVER" diff 1.2.3
[ "$status" -ne 0 ]
[[ "$output" == *"Usage:"* ]]
[[ "$output" == *"semver diff <version> <other_version>"* ]]
[[ "$output" != *"unbound variable"* ]]
}

# ---------- get -------------------------------------------------------------

@test "get major" {
Expand Down
Loading