nonhosted.mx raw

   1  //go:build baremetal || js || wasm_unknown || nintendoswitch
   2  
   3  package runtime
   4  
   5  // This file is for non-hosted environments, that don't support command line
   6  // parameters or environment variables. To still be able to run certain tests,
   7  // command line parameters and environment variables can be passed to the binary
   8  // by setting the variables `runtime.osArgs` and `runtime.osEnv`, both of which
   9  // are strings separated by newlines.
  10  //
  11  // The primary use case is `moxie test`, which takes some parameters (such as
  12  // -test.v).
  13  
  14  // This is the default set of arguments, if nothing else has been set.
  15  var args = []string{"/proc/self/exe"}
  16  
  17  //go:linkname os_runtime_args os.runtime_args
  18  func os_runtime_args() []string {
  19  	return args
  20  }
  21  
  22  var env []string
  23  
  24  //go:linkname syscall_runtime_envs syscall.runtime_envs
  25  func syscall_runtime_envs() []string {
  26  	return env
  27  }
  28  
  29  var osArgs string
  30  var osEnv string
  31  
  32  func init() {
  33  	if osArgs != "" {
  34  		s := osArgs
  35  		start := 0
  36  		for i := 0; i < len(s); i++ {
  37  			if s[i] == 0 {
  38  				args = append(args, s[start:i])
  39  				start = i + 1
  40  			}
  41  		}
  42  		args = append(args, s[start:])
  43  	}
  44  
  45  	if osEnv != "" {
  46  		s := osEnv
  47  		start := 0
  48  		for i := 0; i < len(s); i++ {
  49  			if s[i] == 0 {
  50  				env = append(env, s[start:i])
  51  				start = i + 1
  52  			}
  53  		}
  54  		env = append(env, s[start:])
  55  	}
  56  }
  57