-
Notifications
You must be signed in to change notification settings - Fork 253
/
test.vala
99 lines (80 loc) · 1.96 KB
/
test.vala
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
89
90
91
92
93
94
95
96
97
98
99
//valac --pkg gio-2.0 --pkg posix -D GCC_TEST test.vala
namespace Test
{
class Program
{
static void notify(string msg)
{
try
{
var socket = new SocketClient();
var conn = socket.connect_to_host("localhost",9001,null);
conn.output_stream.write (msg.data);
}
catch (Error e)
{
// standalone usage
}
}
public static void main(string[] args)
{
string[,] fixtures =
{{"hello", "aGVsbG8="}, {"world", "d29ybGQ="}};
var num_fixtures = fixtures.length[0];
for (var i=0;i<num_fixtures;i++)
{
var src = fixtures[i,0];
var dst = fixtures[i,1];
var encoded = Base64.encode(src.data);
if (encoded!=dst)
{
stderr.printf("%s != %s", encoded, dst);
Process.exit(1);
}
var decoded = (string) Base64.decode(dst);
if (decoded!=src)
{
stderr.printf("%s != %s", decoded, src);
Process.exit(1);
}
}
var STR_SIZE = 131072;
var TRIES = 8192;
var str1 = string.nfill(STR_SIZE,'a');
var str2 = Base64.encode(str1.data);
var str3 = (string) Base64.decode(str2);
var msg = "Vala/";
#if GCC_TEST
msg += "gcc";
#elif CLANG_TEST
msg += "clang";
#else
// The preprocessor directive for the test should be specified
Process.exit(-1);
#endif
msg += @"\t $((int)Posix.getpid())";
notify(msg);
var s_encoded = 0;
var timer = new Timer();
for (var i = 0; i < TRIES; i++)
{
s_encoded += Base64.encode(str1.data).length;
}
timer.stop();
var t_encoded = timer.elapsed();
var s_decoded = 0;
timer.reset();
for (var i = 0; i < TRIES; i++)
{
s_decoded += ((string) Base64.decode(str2)).length;
}
timer.stop();
var t_decoded = timer.elapsed();
notify("stop");
stdout.printf("encode %.4s... to %.4s...: %d, %.2f\n",
str1, str2, s_encoded, t_encoded);
stdout.printf("decode %.4s... to %.4s...: %d, %.2f\n",
str2, str3, s_decoded, t_decoded);
}
}
}