github.com/percona/percona-xtradb-cluster-operator@v1.14.0/cmd/pitr/recoverer/recoverer_test.go (about) 1 package recoverer 2 3 import ( 4 "testing" 5 ) 6 7 func TestGetBucketAndPrefix(t *testing.T) { 8 type testCase struct { 9 address string 10 expecteBucket string 11 expectedPrefix string 12 } 13 cases := []testCase{ 14 { 15 address: "operator-testing/test", 16 expecteBucket: "operator-testing", 17 expectedPrefix: "test/", 18 }, 19 { 20 address: "s3://operator-testing/test", 21 expecteBucket: "operator-testing", 22 expectedPrefix: "test/", 23 }, 24 { 25 address: "https://somedomain/operator-testing/test", 26 expecteBucket: "operator-testing", 27 expectedPrefix: "test/", 28 }, 29 { 30 address: "operator-testing/test/", 31 expecteBucket: "operator-testing", 32 expectedPrefix: "test/", 33 }, 34 { 35 address: "operator-testing/test/pitr", 36 expecteBucket: "operator-testing", 37 expectedPrefix: "test/pitr/", 38 }, 39 { 40 address: "https://somedomain/operator-testing", 41 expecteBucket: "operator-testing", 42 expectedPrefix: "", 43 }, 44 { 45 address: "operator-testing", 46 expecteBucket: "operator-testing", 47 expectedPrefix: "", 48 }, 49 } 50 for _, c := range cases { 51 t.Run(c.address, func(t *testing.T) { 52 bucket, prefix, err := getBucketAndPrefix(c.address) 53 if err != nil { 54 t.Errorf("get from '%s': %s", c.address, err.Error()) 55 } 56 if bucket != c.expecteBucket || prefix != c.expectedPrefix { 57 t.Errorf("%s: bucket expect '%s', got '%s'; prefix expect '%s', got '%s'", c.address, c.expecteBucket, bucket, c.expectedPrefix, prefix) 58 } 59 }) 60 } 61 } 62 63 func TestGetGTIDFromContent(t *testing.T) { 64 c := []byte(`sometext GTID of the last set 'test_set:1-10' 65 `) 66 67 set, err := getGTIDFromXtrabackup(c) 68 if err != nil { 69 t.Error("get last gtid set", err.Error()) 70 } 71 if set != "test_set:1-10" { 72 t.Error("set not test_set:1-10 but", set) 73 } 74 } 75 76 func TestGetExtendGTIDSet(t *testing.T) { 77 type testCase struct { 78 gtidSet string 79 gtid string 80 expectedGTIDSet string 81 } 82 cases := []testCase{ 83 { 84 gtidSet: "source-id:1-40", 85 gtid: "source-id:15", 86 expectedGTIDSet: "source-id:15-40", 87 }, 88 { 89 gtidSet: "source-id:1-40", 90 gtid: "source-id:11-15", 91 expectedGTIDSet: "source-id:11-40", 92 }, 93 } 94 for _, c := range cases { 95 t.Run(c.gtid, func(t *testing.T) { 96 set, err := getExtendGTIDSet(c.gtidSet, c.gtid) 97 if err != nil { 98 t.Errorf("get from '%s': %s", c.gtid, err.Error()) 99 } 100 if set != c.expectedGTIDSet { 101 t.Errorf("%s: expect '%s', got '%s'", c.gtid, c.expectedGTIDSet, set) 102 } 103 }) 104 } 105 }