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)
 | |
| 			}
 | |
| 		})
 | |
| 	}
 | |
| }
 |