test: docker: Update to Alpine 3.16

Alpine 3.11 has been EOL since 2021-11-01 and 3.16 is the oldest version
that's still supported. This upgrade requires two fixes:
  1) Moving to Python 3
  2) Working around the OpenSSH 9 scp backwards-incompatible API change

For #1, the parent changes removed the inline Python usage and then
updated the two Python scripts used by tests to support both Python 2
and 3. Modifying their shebang lines to explicitly use `python3` is all
that's needed in this change.

For #2, the solution adopted by upstream was to always prefer using curl
to download the commit-msg hook script instead of scp. Using that for
the tests is a simple fix.

Change-Id: I4ea8dfdf98ace06918ee6d680b8a3b77f7523601
diff --git a/test/docker/run_tests/Dockerfile b/test/docker/run_tests/Dockerfile
index dd5ba8c..c4a68c6 100755
--- a/test/docker/run_tests/Dockerfile
+++ b/test/docker/run_tests/Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.11
+FROM alpine:3.16
 
 ARG UID=1000
 ARG GID=1000
@@ -7,7 +7,7 @@
 ENV RUN_TESTS_DIR task/test/docker/run_tests
 ENV WORKSPACE $USER_HOME/workspace
 
-RUN apk --update add --no-cache openssh bash git python2 shadow util-linux openssl xxd curl jq
+RUN apk --update add --no-cache openssh bash git python3 shadow util-linux openssl xxd curl jq
 RUN echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
 
 RUN groupadd -f -g $GID users2
diff --git a/test/docker/run_tests/create-test-project-and-changes.sh b/test/docker/run_tests/create-test-project-and-changes.sh
index 6192461..fbf3ba7 100755
--- a/test/docker/run_tests/create-test-project-and-changes.sh
+++ b/test/docker/run_tests/create-test-project-and-changes.sh
@@ -1,21 +1,28 @@
 #!/usr/bin/env bash
 
-PORT=29418
+SSH_PORT=29418
+HTTP_PORT=8080
 
-gssh() { ssh -x -p "$PORT" "$GERRIT_HOST" gerrit "$@" ; } # cmd [args]...
+gssh() { ssh -x -p "$SSH_PORT" "$GERRIT_HOST" gerrit "$@" ; } # cmd [args]...
 
 create_project() { # project
     echo "Creating a test project ..."
     gssh create-project "$1" --owner "Administrators" --submit-type "MERGE_IF_NECESSARY"
-    cd "$WORKSPACE" && git clone ssh://"$GERRIT_HOST":"$PORT"/"$1" "$1" && cd "$1"
-    gitdir=$(git rev-parse --git-dir)
-    scp -p -P "$PORT" "$USER"@"$GERRIT_HOST":hooks/commit-msg "$gitdir"/hooks/
+    cd "$WORKSPACE" && git clone ssh://"$GERRIT_HOST":"$SSH_PORT"/"$1" "$1" && cd "$1"
+    install_changeid_hook
+}
+
+install_changeid_hook() {
+    local hook=$(git rev-parse --git-dir)/hooks/commit-msg
+    mkdir -p "$(dirname "$hook")"
+    curl -Lo "$hook" "http://$GERRIT_HOST:$HTTP_PORT/tools/hooks/commit-msg"
+    chmod +x "$hook"
 }
 
 create_change() { # subject project
     touch readme.txt && echo "$(date)" >> readme.txt
     git add . && git commit -m "$1"
-    git push ssh://"$GERRIT_HOST":"$PORT"/"$2" HEAD:refs/for/master
+    git push ssh://"$GERRIT_HOST":"$SSH_PORT"/"$2" HEAD:refs/for/master
 }
 
 create_project 'test'
diff --git a/test/lib/lib_helper.sh b/test/lib/lib_helper.sh
index 3e6f0b5..cccf432 100644
--- a/test/lib/lib_helper.sh
+++ b/test/lib/lib_helper.sh
@@ -258,9 +258,10 @@
     echo "${url##*\/}" | tr -d -c '[:digit:]'
 }
 
-install_changeid_hook() { # repo
+install_changeid_hook() {
     local hook=$(git rev-parse --git-dir)/hooks/commit-msg
-    scp -p -P "$PORT" "$SERVER":hooks/commit-msg "$hook"
+    mkdir -p "$(dirname "$hook")"
+    curl -Lo "$hook" "http://$SERVER:$HTTP_PORT/tools/hooks/commit-msg"
     chmod +x "$hook"
 }
 
@@ -269,7 +270,7 @@
     git init "$repo"
     (
         cd "$repo"
-        install_changeid_hook "$repo"
+        install_changeid_hook
         git fetch "$remote" "$ref"
         if ! git checkout FETCH_HEAD ; then
             if [ "$init" = "--initial-commit" ] ; then
diff --git a/test/strip_non_applicable.py b/test/strip_non_applicable.py
index 4ba3b9c..a0ce4fa 100755
--- a/test/strip_non_applicable.py
+++ b/test/strip_non_applicable.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright (C) 2021 The Android Open Source Project
 #
diff --git a/test/strip_non_invalid.py b/test/strip_non_invalid.py
index 4889a50..0227c79 100755
--- a/test/strip_non_invalid.py
+++ b/test/strip_non_invalid.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright (C) 2021 The Android Open Source Project
 #