diff options
| author | 2024-08-09 10:53:29 +0000 | |
|---|---|---|
| committer | 2024-08-09 10:53:29 +0000 | |
| commit | 4a3ece0c6c22e6a3f376c26d38eb4dbad8ada420 (patch) | |
| tree | 843c32817efa4040d13e4b9847381252467a6005 | |
| parent | [performance] move thumbnail generation to go code where possible (#3183) (diff) | |
| download | gotosocial-4a3ece0c6c22e6a3f376c26d38eb4dbad8ada420.tar.xz | |
[bugfix] ensure testrig package only compiled-in when debug enabled (#3185)
* ensure testrig package only compiled-in (including init) when debug enabled
* add code comment to testrig init to indicate WebAssembly compilation
| -rw-r--r-- | cmd/gotosocial/action/testrig/no_testrig.go | 26 | ||||
| -rw-r--r-- | cmd/gotosocial/action/testrig/testrig.go | 5 | ||||
| -rw-r--r-- | cmd/gotosocial/main.go | 10 | ||||
| -rw-r--r-- | cmd/gotosocial/testrig.go | 29 | ||||
| -rw-r--r-- | testrig/config.go | 3 | 
5 files changed, 54 insertions, 19 deletions
diff --git a/cmd/gotosocial/action/testrig/no_testrig.go b/cmd/gotosocial/action/testrig/no_testrig.go new file mode 100644 index 000000000..7205ecf6b --- /dev/null +++ b/cmd/gotosocial/action/testrig/no_testrig.go @@ -0,0 +1,26 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 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 Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program.  If not, see <http://www.gnu.org/licenses/>. + +//go:build !debug && !debugenv + +package testrig + +import "github.com/superseriousbusiness/gotosocial/cmd/gotosocial/action" + +// Start creates and starts a gotosocial testrig server. +// This is only enabled in debug builds, else is nil. +var Start action.GTSAction diff --git a/cmd/gotosocial/action/testrig/testrig.go b/cmd/gotosocial/action/testrig/testrig.go index 95982fc72..19588c70a 100644 --- a/cmd/gotosocial/action/testrig/testrig.go +++ b/cmd/gotosocial/action/testrig/testrig.go @@ -15,6 +15,8 @@  // You should have received a copy of the GNU Affero General Public License  // along with this program.  If not, see <http://www.gnu.org/licenses/>. +//go:build debug || debugenv +  package testrig  import ( @@ -52,7 +54,8 @@ import (  	"github.com/superseriousbusiness/gotosocial/testrig"  ) -// Start creates and starts a gotosocial testrig server +// Start creates and starts a gotosocial testrig server. +// This is only enabled in debug builds, else is nil.  var Start action.GTSAction = func(ctx context.Context) error {  	testrig.InitTestConfig()  	testrig.InitTestLog() diff --git a/cmd/gotosocial/main.go b/cmd/gotosocial/main.go index 5c610f1a3..7d45c126d 100644 --- a/cmd/gotosocial/main.go +++ b/cmd/gotosocial/main.go @@ -23,7 +23,6 @@ import (  	godebug "runtime/debug"  	"strings" -	"codeberg.org/gruf/go-debug"  	"github.com/spf13/cobra"  	_ "github.com/superseriousbusiness/gotosocial/docs" @@ -63,11 +62,12 @@ func main() {  	rootCmd.AddCommand(serverCommands())  	rootCmd.AddCommand(debugCommands())  	rootCmd.AddCommand(adminCommands()) -	if debug.DEBUG { -		// only add testrig if debug enabled. -		rootCmd.AddCommand(testrigCommands()) + +	// Testrigcmd will only be set when debug is enabled. +	if testrigCmd := testrigCommands(); testrigCmd != nil { +		rootCmd.AddCommand(testrigCmd)  	} else if len(os.Args) > 1 && os.Args[1] == "testrig" { -		log.Fatalln("gotosocial must be built and run with the DEBUG enviroment variable set to enable and access testrig") +		log.Fatal("gotosocial must be built and run with the DEBUG enviroment variable set to enable and access testrig")  	}  	// run diff --git a/cmd/gotosocial/testrig.go b/cmd/gotosocial/testrig.go index 20cca9f1c..124fc1105 100644 --- a/cmd/gotosocial/testrig.go +++ b/cmd/gotosocial/testrig.go @@ -23,19 +23,22 @@ import (  )  func testrigCommands() *cobra.Command { -	testrigCmd := &cobra.Command{ -		Use:   "testrig", -		Short: "gotosocial testrig-related tasks", -	} +	if testrig.Start != nil { +		testrigCmd := &cobra.Command{ +			Use:   "testrig", +			Short: "gotosocial testrig-related tasks", +		} -	testrigStartCmd := &cobra.Command{ -		Use:   "start", -		Short: "start the gotosocial testrig server", -		RunE: func(cmd *cobra.Command, args []string) error { -			return run(cmd.Context(), testrig.Start) -		}, -	} +		testrigStartCmd := &cobra.Command{ +			Use:   "start", +			Short: "start the gotosocial testrig server", +			RunE: func(cmd *cobra.Command, args []string) error { +				return run(cmd.Context(), testrig.Start) +			}, +		} -	testrigCmd.AddCommand(testrigStartCmd) -	return testrigCmd +		testrigCmd.AddCommand(testrigStartCmd) +		return testrigCmd +	} +	return nil  } diff --git a/testrig/config.go b/testrig/config.go index ed98798d6..6a4254d61 100644 --- a/testrig/config.go +++ b/testrig/config.go @@ -19,6 +19,7 @@ package testrig  import (  	"context" +	"fmt"  	"os"  	"strconv"  	"time" @@ -34,11 +35,13 @@ func init() {  	ctx := context.Background()  	// Ensure global ffmpeg WASM pool initialized. +	fmt.Println("testrig: precompiling ffmpeg WASM")  	if err := ffmpeg.InitFfmpeg(ctx, 1); err != nil {  		panic(err)  	}  	// Ensure global ffmpeg WASM pool initialized. +	fmt.Println("testrig: precompiling ffprobe WASM")  	if err := ffmpeg.InitFfprobe(ctx, 1); err != nil {  		panic(err)  	}  | 
