mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-05 20:47:53 +00:00
104
tests/refc/t18616.nim
Normal file
104
tests/refc/t18616.nim
Normal file
@@ -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
|
||||
@@ -1,5 +1,5 @@
|
||||
discard """
|
||||
matrix: "--gc:refc; --gc:arc"
|
||||
matrix: "--mm:refc; --mm:arc"
|
||||
output: '''
|
||||
Value is: 42
|
||||
Value is: 42'''
|
||||
|
||||
Reference in New Issue
Block a user