FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
libgit2/tests/buf/quote.c at executable · novalis/libgit2 · GitHub
novalis
/
libgit2
Public
forked from
dturner-tw/libgit2
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
libgit2
/
tests
/
buf
/
quote.c
Copy path
More file actions
More file actions
Latest commit
History
History
History
88 lines (74 loc) · 2.9 KB
Breadcrumbs
libgit2
/
tests
/
buf
/
quote.c
Copy path
File metadata and controls
88 lines (74 loc) · 2.9 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include
"clar_libgit2.h"
#include
"buffer.h"
static
void
expect_quote_pass
(
const
char
*
expected
,
const
char
*
str
)
{
git_buf
buf
=
GIT_BUF_INIT
;
cl_git_pass
(
git_buf_puts
(
&
buf
,
str
));
cl_git_pass
(
git_buf_quote
(
&
buf
));
cl_assert_equal_s
(
expected
,
git_buf_cstr
(
&
buf
));
cl_assert_equal_i
(
strlen
(
expected
),
git_buf_len
(
&
buf
));
git_buf_dispose
(
&
buf
);
}
void
test_buf_quote__quote_succeeds
(
void
)
{
expect_quote_pass
(
""
,
""
);
expect_quote_pass
(
"foo"
,
"foo"
);
expect_quote_pass
(
"foo/bar/baz.c"
,
"foo/bar/baz.c"
);
expect_quote_pass
(
"foo bar"
,
"foo bar"
);
expect_quote_pass
(
"\"\\\"leading quote\""
,
"\"leading quote"
);
expect_quote_pass
(
"\"slash\\\\y\""
,
"slash\\y"
);
expect_quote_pass
(
"\"foo\\r\\nbar\""
,
"foo\r\nbar"
);
expect_quote_pass
(
"\"foo\\177bar\""
,
"foo\177bar"
);
expect_quote_pass
(
"\"foo\\001bar\""
,
"foo\001bar"
);
expect_quote_pass
(
"\"foo\\377bar\""
,
"foo\377bar"
);
}
static
void
expect_unquote_pass
(
const
char
*
expected
,
const
char
*
quoted
)
{
git_buf
buf
=
GIT_BUF_INIT
;
cl_git_pass
(
git_buf_puts
(
&
buf
,
quoted
));
cl_git_pass
(
git_buf_unquote
(
&
buf
));
cl_assert_equal_s
(
expected
,
git_buf_cstr
(
&
buf
));
cl_assert_equal_i
(
strlen
(
expected
),
git_buf_len
(
&
buf
));
git_buf_dispose
(
&
buf
);
}
static
void
expect_unquote_fail
(
const
char
*
quoted
)
{
git_buf
buf
=
GIT_BUF_INIT
;
cl_git_pass
(
git_buf_puts
(
&
buf
,
quoted
));
cl_git_fail
(
git_buf_unquote
(
&
buf
));
git_buf_dispose
(
&
buf
);
}
void
test_buf_quote__unquote_succeeds
(
void
)
{
expect_unquote_pass
(
""
,
"\"\""
);
expect_unquote_pass
(
" "
,
"\" \""
);
expect_unquote_pass
(
"foo"
,
"\"foo\""
);
expect_unquote_pass
(
"foo bar"
,
"\"foo bar\""
);
expect_unquote_pass
(
"foo\"bar"
,
"\"foo\\\"bar\""
);
expect_unquote_pass
(
"foo\\bar"
,
"\"foo\\\\bar\""
);
expect_unquote_pass
(
"foo\tbar"
,
"\"foo\\tbar\""
);
expect_unquote_pass
(
"\vfoo\tbar\n"
,
"\"\\vfoo\\tbar\\n\""
);
expect_unquote_pass
(
"foo\nbar"
,
"\"foo\\012bar\""
);
expect_unquote_pass
(
"foo\r\nbar"
,
"\"foo\\015\\012bar\""
);
expect_unquote_pass
(
"foo\r\nbar"
,
"\"\\146\\157\\157\\015\\012\\142\\141\\162\""
);
expect_unquote_pass
(
"newline: \n"
,
"\"newline: \\012\""
);
expect_unquote_pass
(
"0xff: \377"
,
"\"0xff: \\377\""
);
}
void
test_buf_quote__unquote_fails
(
void
)
{
expect_unquote_fail
(
"no quotes at all"
);
expect_unquote_fail
(
"\"no trailing quote"
);
expect_unquote_fail
(
"no leading quote\""
);
expect_unquote_fail
(
"\"invalid \\z escape char\""
);
expect_unquote_fail
(
"\"\\q invalid escape char\""
);
expect_unquote_fail
(
"\"invalid escape char \\p\""
);
expect_unquote_fail
(
"\"invalid \\1 escape char \""
);
expect_unquote_fail
(
"\"invalid \\14 escape char \""
);
expect_unquote_fail
(
"\"invalid \\280 escape char\""
);
expect_unquote_fail
(
"\"invalid \\378 escape char\""
);
expect_unquote_fail
(
"\"invalid \\380 escape char\""
);
expect_unquote_fail
(
"\"invalid \\411 escape char\""
);
expect_unquote_fail
(
"\"truncated escape char \\\""
);
expect_unquote_fail
(
"\"truncated escape char \\0\""
);
expect_unquote_fail
(
"\"truncated escape char \\01\""
);
}
Back
|
FazBrowse Home
|
New Git URL