All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 34s
				
			Test / Sandbox (push) Successful in 1m30s
				
			Test / Hakurei (push) Successful in 2m21s
				
			Test / Hpkg (push) Successful in 3m23s
				
			Test / Sandbox (race detector) (push) Successful in 4m1s
				
			Test / Hakurei (race detector) (push) Successful in 4m46s
				
			Test / Flake checks (push) Successful in 1m27s
				
			This package turns out to be much less widely used than anticipated, and might be facing removal. This change makes test cases cleaner. Signed-off-by: Ophestra <cat@gensokyo.uk>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package helper
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"io"
 | |
| 	"syscall"
 | |
| )
 | |
| 
 | |
| type argsWt [][]byte
 | |
| 
 | |
| func (a argsWt) WriteTo(w io.Writer) (int64, error) {
 | |
| 	nt := 0
 | |
| 	for _, arg := range a {
 | |
| 		n, err := w.Write(arg)
 | |
| 		nt += n
 | |
| 
 | |
| 		if err != nil {
 | |
| 			return int64(nt), err
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return int64(nt), nil
 | |
| }
 | |
| 
 | |
| func (a argsWt) String() string {
 | |
| 	return string(
 | |
| 		bytes.TrimSuffix(
 | |
| 			bytes.ReplaceAll(
 | |
| 				bytes.Join(a, nil),
 | |
| 				[]byte{0}, []byte{' '},
 | |
| 			),
 | |
| 			[]byte{' '},
 | |
| 		),
 | |
| 	)
 | |
| }
 | |
| 
 | |
| // NewCheckedArgs returns a checked null-terminated argument writer for a copy of args.
 | |
| func NewCheckedArgs(args ...string) (wt io.WriterTo, err error) {
 | |
| 	a := make(argsWt, len(args))
 | |
| 	for i, arg := range args {
 | |
| 		a[i], err = syscall.ByteSliceFromString(arg)
 | |
| 		if err != nil {
 | |
| 			return
 | |
| 		}
 | |
| 	}
 | |
| 	wt = a
 | |
| 	return
 | |
| }
 | |
| 
 | |
| // MustNewCheckedArgs returns a checked null-terminated argument writer for a copy of args.
 | |
| // If s contains a NUL byte this function panics instead of returning an error.
 | |
| func MustNewCheckedArgs(args ...string) io.WriterTo {
 | |
| 	a, err := NewCheckedArgs(args...)
 | |
| 	if err != nil {
 | |
| 		panic(err.Error())
 | |
| 	}
 | |
| 
 | |
| 	return a
 | |
| }
 |