All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 34s
				
			Test / Sandbox (push) Successful in 1m47s
				
			Test / Hakurei (push) Successful in 3m20s
				
			Test / Hpkg (push) Successful in 3m49s
				
			Test / Sandbox (race detector) (push) Successful in 5m48s
				
			Test / Hakurei (race detector) (push) Successful in 3m9s
				
			Test / Flake checks (push) Successful in 1m35s
				
			This helps determine which libacl function the errno came from. Signed-off-by: Ophestra <cat@gensokyo.uk>
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package acl
 | 
						|
 | 
						|
import (
 | 
						|
	"os"
 | 
						|
	"reflect"
 | 
						|
	"syscall"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"hakurei.app/container"
 | 
						|
)
 | 
						|
 | 
						|
func TestNewAclPathError(t *testing.T) {
 | 
						|
	testCases := []struct {
 | 
						|
		name string
 | 
						|
		path string
 | 
						|
		r    int
 | 
						|
		err  error
 | 
						|
		want error
 | 
						|
	}{
 | 
						|
		{"nil", container.Nonexistent, 0, syscall.ENOTRECOVERABLE, nil},
 | 
						|
 | 
						|
		{"acl_get_file", container.Nonexistent, -1, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_get_file", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_get_tag_type", container.Nonexistent, -2, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_get_tag_type", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_get_qualifier", container.Nonexistent, -3, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_get_qualifier", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_delete_entry", container.Nonexistent, -4, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_delete_entry", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_create_entry", container.Nonexistent, -5, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_create_entry", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_get_permset", container.Nonexistent, -6, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_get_permset", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_add_perm", container.Nonexistent, -7, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_add_perm", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_set_tag_type", container.Nonexistent, -8, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_set_tag_type", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_set_qualifier", container.Nonexistent, -9, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_set_qualifier", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_calc_mask", container.Nonexistent, -10, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_calc_mask", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_valid", container.Nonexistent, -11, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_valid", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"acl_set_file", container.Nonexistent, -12, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "acl_set_file", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
 | 
						|
		{"acl", container.Nonexistent, -13, syscall.ENOTRECOVERABLE,
 | 
						|
			&os.PathError{Op: "setfacl", Path: container.Nonexistent, Err: syscall.ENOTRECOVERABLE}},
 | 
						|
		{"invalid", container.Nonexistent, -0xdeadbeef, nil,
 | 
						|
			&os.PathError{Op: "setfacl", Path: container.Nonexistent}},
 | 
						|
	}
 | 
						|
	for _, tc := range testCases {
 | 
						|
		t.Run(tc.name, func(t *testing.T) {
 | 
						|
			err := newAclPathError(tc.path, tc.r, tc.err)
 | 
						|
			if !reflect.DeepEqual(err, tc.want) {
 | 
						|
				t.Errorf("newAclPathError: %v, want %v", err, tc.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |