mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:02:25 -05:00 
			
		
		
		
	[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
This commit is contained in:
		
					parent
					
						
							
								f77005128a
							
						
					
				
			
			
				commit
				
					
						4a3ece0c6c
					
				
			
		
					 5 changed files with 54 additions and 19 deletions
				
			
		
							
								
								
									
										26
									
								
								cmd/gotosocial/action/testrig/no_testrig.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								cmd/gotosocial/action/testrig/no_testrig.go
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 | ||||||
|  | @ -15,6 +15,8 @@ | ||||||
| // You should have received a copy of the GNU Affero General Public License | // 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/>. | // along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||||
| 
 | 
 | ||||||
|  | //go:build debug || debugenv | ||||||
|  | 
 | ||||||
| package testrig | package testrig | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | @ -52,7 +54,8 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"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 { | var Start action.GTSAction = func(ctx context.Context) error { | ||||||
| 	testrig.InitTestConfig() | 	testrig.InitTestConfig() | ||||||
| 	testrig.InitTestLog() | 	testrig.InitTestLog() | ||||||
|  |  | ||||||
|  | @ -23,7 +23,6 @@ import ( | ||||||
| 	godebug "runtime/debug" | 	godebug "runtime/debug" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"codeberg.org/gruf/go-debug" |  | ||||||
| 	"github.com/spf13/cobra" | 	"github.com/spf13/cobra" | ||||||
| 
 | 
 | ||||||
| 	_ "github.com/superseriousbusiness/gotosocial/docs" | 	_ "github.com/superseriousbusiness/gotosocial/docs" | ||||||
|  | @ -63,11 +62,12 @@ func main() { | ||||||
| 	rootCmd.AddCommand(serverCommands()) | 	rootCmd.AddCommand(serverCommands()) | ||||||
| 	rootCmd.AddCommand(debugCommands()) | 	rootCmd.AddCommand(debugCommands()) | ||||||
| 	rootCmd.AddCommand(adminCommands()) | 	rootCmd.AddCommand(adminCommands()) | ||||||
| 	if debug.DEBUG { | 
 | ||||||
| 		// only add testrig if debug enabled. | 	// Testrigcmd will only be set when debug is enabled. | ||||||
| 		rootCmd.AddCommand(testrigCommands()) | 	if testrigCmd := testrigCommands(); testrigCmd != nil { | ||||||
|  | 		rootCmd.AddCommand(testrigCmd) | ||||||
| 	} else if len(os.Args) > 1 && os.Args[1] == "testrig" { | 	} 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 | 	// run | ||||||
|  |  | ||||||
|  | @ -23,19 +23,22 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func testrigCommands() *cobra.Command { | func testrigCommands() *cobra.Command { | ||||||
| 	testrigCmd := &cobra.Command{ | 	if testrig.Start != nil { | ||||||
| 		Use:   "testrig", | 		testrigCmd := &cobra.Command{ | ||||||
| 		Short: "gotosocial testrig-related tasks", | 			Use:   "testrig", | ||||||
| 	} | 			Short: "gotosocial testrig-related tasks", | ||||||
|  | 		} | ||||||
| 
 | 
 | ||||||
| 	testrigStartCmd := &cobra.Command{ | 		testrigStartCmd := &cobra.Command{ | ||||||
| 		Use:   "start", | 			Use:   "start", | ||||||
| 		Short: "start the gotosocial testrig server", | 			Short: "start the gotosocial testrig server", | ||||||
| 		RunE: func(cmd *cobra.Command, args []string) error { | 			RunE: func(cmd *cobra.Command, args []string) error { | ||||||
| 			return run(cmd.Context(), testrig.Start) | 				return run(cmd.Context(), testrig.Start) | ||||||
| 		}, | 			}, | ||||||
| 	} | 		} | ||||||
| 
 | 
 | ||||||
| 	testrigCmd.AddCommand(testrigStartCmd) | 		testrigCmd.AddCommand(testrigStartCmd) | ||||||
| 	return testrigCmd | 		return testrigCmd | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -19,6 +19,7 @@ package testrig | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"fmt" | ||||||
| 	"os" | 	"os" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"time" | 	"time" | ||||||
|  | @ -34,11 +35,13 @@ func init() { | ||||||
| 	ctx := context.Background() | 	ctx := context.Background() | ||||||
| 
 | 
 | ||||||
| 	// Ensure global ffmpeg WASM pool initialized. | 	// Ensure global ffmpeg WASM pool initialized. | ||||||
|  | 	fmt.Println("testrig: precompiling ffmpeg WASM") | ||||||
| 	if err := ffmpeg.InitFfmpeg(ctx, 1); err != nil { | 	if err := ffmpeg.InitFfmpeg(ctx, 1); err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Ensure global ffmpeg WASM pool initialized. | 	// Ensure global ffmpeg WASM pool initialized. | ||||||
|  | 	fmt.Println("testrig: precompiling ffprobe WASM") | ||||||
| 	if err := ffmpeg.InitFfprobe(ctx, 1); err != nil { | 	if err := ffmpeg.InitFfprobe(ctx, 1); err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue