From 9d2227d5ca3e48ff4dd96f35f25dfe445a22fb29 Mon Sep 17 00:00:00 2001 From: bb7133 Date: Mon, 7 Oct 2024 21:41:16 -0700 Subject: [PATCH] *: remove `portgenerator` to cleanup codes (#56465) --- .gitignore | 1 - cmd/portgenerator/BUILD.bazel | 19 --------- cmd/portgenerator/portgenerator.go | 50 ---------------------- tests/integrationtest/run-tests.sh | 66 ++++++++++++++++-------------- 4 files changed, 36 insertions(+), 100 deletions(-) delete mode 100644 cmd/portgenerator/BUILD.bazel delete mode 100644 cmd/portgenerator/portgenerator.go diff --git a/.gitignore b/.gitignore index 68145bc905..7f622a5092 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ profile.coverprofile mysql_tester tests/integrationtest/integration-test.out tests/integrationtest/integrationtest_tidb-server -tests/integrationtest/portgenerator tests/integrationtest/s/ tests/integrationtest/replayer/ *.fail.go diff --git a/cmd/portgenerator/BUILD.bazel b/cmd/portgenerator/BUILD.bazel deleted file mode 100644 index da9509e7de..0000000000 --- a/cmd/portgenerator/BUILD.bazel +++ /dev/null @@ -1,19 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -go_library( - name = "portgenerator_lib", - srcs = ["portgenerator.go"], - importpath = "github.com/pingcap/tidb/cmd/portgenerator", - visibility = ["//visibility:private"], - deps = [ - "@com_github_phayes_freeport//:freeport", - "@com_github_pingcap_log//:log", - "@org_uber_go_zap//:zap", - ], -) - -go_binary( - name = "portgenerator", - embed = [":portgenerator_lib"], - visibility = ["//visibility:public"], -) diff --git a/cmd/portgenerator/portgenerator.go b/cmd/portgenerator/portgenerator.go deleted file mode 100644 index 866e4af8ab..0000000000 --- a/cmd/portgenerator/portgenerator.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2021 PingCAP, Inc. -// -// 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. - -package main - -import ( - "flag" - "fmt" - - "github.com/phayes/freeport" - "github.com/pingcap/log" - "go.uber.org/zap" -) - -var ( - count uint -) - -func init() { - flag.UintVar(&count, "count", 1, "number of generated ports") -} - -func generatePorts(count int) []int { - var ( - err error - ports []int - ) - if ports, err = freeport.GetFreePorts(count); err != nil { - log.Fatal("no more free ports", zap.Error(err)) - } - return ports -} - -func main() { - flag.Parse() - for _, port := range generatePorts(int(count)) { - fmt.Println(port) - } -} diff --git a/tests/integrationtest/run-tests.sh b/tests/integrationtest/run-tests.sh index 27c3375232..2ef9d96693 100755 --- a/tests/integrationtest/run-tests.sh +++ b/tests/integrationtest/run-tests.sh @@ -58,19 +58,45 @@ function help_message() This option will be ignored if \"-r \" is provided. Run all tests if this option is not provided. - -p : Use port generator in for generating port numbers. - " } -function build_portgenerator() -{ - portgenerator="./portgenerator" - echo "building portgenerator binary: $portgenerator" - rm -rf $portgenerator - GO111MODULE=on go build -o $portgenerator github.com/pingcap/tidb/cmd/portgenerator +# Function to find an available port starting from a given port +function find_available_port() { + local port=$1 + + while :; do + if [ "$port" -ge 65536 ]; then + echo "Error: No available ports found below 65536." >&2 + exit 1 + fi + if ! lsof -i :"$port" &> /dev/null; then + echo $port + return 0 + fi + ((port++)) + done } +# Function to find multiple available ports starting from a given port +function find_multiple_available_ports() { + local start_port=$1 + local count=$2 + local ports=() + + while [ ${#ports[@]} -lt $count ]; do + local available_port=$(find_available_port $start_port) + if [ $? -eq 0 ]; then + ports+=($available_port) + ((start_port = available_port + 1)) + else + echo "Error: Could not find an available port." >&2 + exit 1 + fi + done + + echo "${ports[@]}" +} function build_tidb_server() { @@ -99,7 +125,7 @@ function extract_stats() unzip -qq s.zip } -while getopts "t:s:r:b:d:c:i:h:p" opt; do +while getopts "t:s:r:b:d:c:i:h" opt; do case $opt in t) tests="$OPTARG" @@ -146,9 +172,6 @@ while getopts "t:s:r:b:d:c:i:h:p" opt; do help_message exit 0 ;; - p) - portgenerator="$OPTARG" - ;; *) help_message 1>&2 exit 1 @@ -164,11 +187,6 @@ if [ $build -eq 1 ]; then else echo "skip building tidb-server, using existing binary: $tidb_server" fi - if [[ -z "$portgenerator" ]]; then - build_portgenerator - else - echo "skip building portgenerator, using existing binary: $portgenerator" - fi build_mysql_tester else if [ -z "$tidb_server" ]; then @@ -187,23 +205,11 @@ else echo "skip building mysql-tester, using existing binary: $mysql_tester" fi fi - if [ -z "$portgenerator" ]; then - portgenerator="./portgenerator" - if [[ ! -f "$portgenerator" ]]; then - build_portgenerator - else - echo "skip building portgenerator, using existing binary: $portgenerator" - fi - fi fi rm -rf $mysql_tester_log -ports=() -for port in $($portgenerator -count 2); do - ports+=("$port") -done - +ports=($(find_multiple_available_ports 4000 2)) port=${ports[0]} status=${ports[1]}