| | 61 | # set foo1 |
|---|
| | 62 | print $sock "set foo1 0 0 1\r\n1\r\n"; |
|---|
| | 63 | is(scalar <$sock>, "STORED\r\n", "set foo1"); |
|---|
| | 64 | # set foo2 |
|---|
| | 65 | print $sock "set foo2 0 0 1\r\n2\r\n"; |
|---|
| | 66 | is(scalar <$sock>, "STORED\r\n", "set foo2"); |
|---|
| | 67 | |
|---|
| | 68 | # gets foo1 check |
|---|
| | 69 | print $sock "gets foo1\r\n"; |
|---|
| | 70 | ok(scalar <$sock> =~ /VALUE foo1 0 1 (\d+)\r\n/, "gets foo1 regexp success"); |
|---|
| | 71 | my $foo1_cas = $1; |
|---|
| | 72 | is(scalar <$sock>, "1\r\n","gets foo1 data is 1"); |
|---|
| | 73 | is(scalar <$sock>, "END\r\n","gets foo1 END"); |
|---|
| | 74 | |
|---|
| | 75 | # gets foo2 check |
|---|
| | 76 | print $sock "gets foo2\r\n"; |
|---|
| | 77 | ok(scalar <$sock> =~ /VALUE foo2 0 1 (\d+)\r\n/,"gets foo2 regexp success"); |
|---|
| | 78 | my $foo2_cas = $1; |
|---|
| | 79 | is(scalar <$sock>, "2\r\n","gets foo2 data is 2"); |
|---|
| | 80 | is(scalar <$sock>, "END\r\n","gets foo2 END"); |
|---|
| | 81 | |
|---|
| | 82 | # validate foo1 != foo2 |
|---|
| | 83 | ok($foo1_cas != $foo2_cas,"foo1 != foo2 single-gets success"); |
|---|
| | 84 | |
|---|
| | 85 | # multi-gets |
|---|
| | 86 | print $sock "gets foo1 foo2\r\n"; |
|---|
| | 87 | ok(scalar <$sock> =~ /VALUE foo1 0 1 (\d+)\r\n/, "validating first set of data is foo1"); |
|---|
| | 88 | $foo1_cas = $1; |
|---|
| | 89 | is(scalar <$sock>, "1\r\n",, "validating foo1 set of data is 1"); |
|---|
| | 90 | ok(scalar <$sock> =~ /VALUE foo2 0 1 (\d+)\r\n/, "validating second set of data is foo2"); |
|---|
| | 91 | $foo2_cas = $1; |
|---|
| | 92 | is(scalar <$sock>, "2\r\n", "validating foo2 set of data is 2"); |
|---|
| | 93 | is(scalar <$sock>, "END\r\n","validating foo1,foo2 gets is over - END"); |
|---|
| | 94 | |
|---|
| | 95 | # validate foo1 != foo2 |
|---|
| | 96 | ok($foo1_cas != $foo2_cas, "foo1 != foo2 multi-gets success"); |
|---|
| | 97 | |
|---|
| | 98 | ### simulate race condition with cas |
|---|
| | 99 | |
|---|
| | 100 | # gets foo1 - success |
|---|
| | 101 | @result = mem_gets($sock, "foo1"); |
|---|
| | 102 | ok($result[0] != "", "sock - gets foo1 is not empty"); |
|---|
| | 103 | |
|---|
| | 104 | # gets foo2 - success |
|---|
| | 105 | @result2 = mem_gets($sock2, "foo1"); |
|---|
| | 106 | ok($result2[0] != "","sock2 - gets foo1 is not empty"); |
|---|
| | 107 | |
|---|
| | 108 | print $sock "cas foo1 0 0 6 $result[0]\r\nbarva2\r\n"; |
|---|
| | 109 | print $sock2 "cas foo1 0 0 5 $result2[0]\r\napple\r\n"; |
|---|
| | 110 | |
|---|
| | 111 | is(scalar <$sock>, "STORED\r\n", "cas success, set foo1"); |
|---|
| | 112 | is(scalar <$sock2>, "EXISTS\r\n", "cas failed for foo1"); |
|---|