diff --git a/tests/refc/t18616.nim b/tests/refc/t18616.nim new file mode 100644 index 0000000000000..6cd6f9307e283 --- /dev/null +++ b/tests/refc/t18616.nim @@ -0,0 +1,104 @@ +discard """ + matrix: "--mm:refc; --mm:arc" + joinable: false +""" + +import std/[unittest, asyncdispatch] + +# bug #18616 +type + ClientResponse = object + status*: int + data*: string + +template asyncTest*(name: string, body: untyped): untyped = + test name: + waitFor(( + proc() {.async, gcsafe.} = + body + )()) + +suite "Test suite": + asyncTest "test1": + const PostVectors = [ + ( + ("/test/post", "somebody0908", "text/html", + "app/type1;q=0.9,app/type2;q=0.8"), + ClientResponse(status: 200, data: "type1[text/html,somebody0908]") + ), + ( + ("/test/post", "somebody0908", "text/html", + "app/type2;q=0.8,app/type1;q=0.9"), + ClientResponse(status: 200, data: "type1[text/html,somebody0908]") + ), + ( + ("/test/post", "somebody09", "text/html", + "app/type2,app/type1;q=0.9"), + ClientResponse(status: 200, data: "type2[text/html,somebody09]") + ), + ( + ("/test/post", "somebody09", "text/html", "app/type1;q=0.9,app/type2"), + ClientResponse(status: 200, data: "type2[text/html,somebody09]") + ), + ( + ("/test/post", "somebody", "text/html", "*/*"), + ClientResponse(status: 200, data: "type1[text/html,somebody]") + ), + ( + ("/test/post", "somebody", "text/html", ""), + ClientResponse(status: 200, data: "type1[text/html,somebody]") + ), + ( + ("/test/post", "somebody", "text/html", "app/type2"), + ClientResponse(status: 200, data: "type2[text/html,somebody]") + ), + ( + ("/test/post", "somebody", "text/html", "app/type3"), + ClientResponse(status: 406, data: "") + ) + ] + + for item in PostVectors: + discard item + + asyncTest "test2": + const PostVectors = [ + ( + "/test/post", "somebody0908", "text/html", + "app/type1;q=0.9,app/type2;q=0.8", + ClientResponse(status: 200, data: "type1[text/html,somebody0908]") + ), + ( + "/test/post", "somebody0908", "text/html", + "app/type2;q=0.8,app/type1;q=0.9", + ClientResponse(status: 200, data: "type1[text/html,somebody0908]") + ), + ( + "/test/post", "somebody09", "text/html", + "app/type2,app/type1;q=0.9", + ClientResponse(status: 200, data: "type2[text/html,somebody09]") + ), + ( + "/test/post", "somebody09", "text/html", "app/type1;q=0.9,app/type2", + ClientResponse(status: 200, data: "type2[text/html,somebody09]") + ), + ( + "/test/post", "somebody", "text/html", "*/*", + ClientResponse(status: 200, data: "type1[text/html,somebody]") + ), + ( + "/test/post", "somebody", "text/html", "", + ClientResponse(status: 200, data: "type1[text/html,somebody]") + ), + ( + "/test/post", "somebody", "text/html", "app/type2", + ClientResponse(status: 200, data: "type2[text/html,somebody]") + ), + ( + "/test/post", "somebody", "text/html", "app/type3", + ClientResponse(status: 406, data: "") + ) + ] + + for item in PostVectors: + discard item \ No newline at end of file diff --git a/tests/refc/tsinkbug.nim b/tests/refc/tsinkbug.nim index de2ec98a54397..2a15f56c0adb4 100644 --- a/tests/refc/tsinkbug.nim +++ b/tests/refc/tsinkbug.nim @@ -1,5 +1,5 @@ discard """ - matrix: "--gc:refc; --gc:arc" + matrix: "--mm:refc; --mm:arc" output: ''' Value is: 42 Value is: 42'''