aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/runnable/testappend.d
blob: cbdae36b96c22c00c0f6329b99d9496948d1e2b3 (plain)
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
// PERMUTE_ARGS:

import core.stdc.stdio;
import core.stdc.math : isnan;

void test12826()
{
    string s, t;
    t = t ~ "1234567";
    s = s ~ "1234567";

    s ~= s;
    assert(s == "12345671234567", s);
    assert(t == "1234567", t);
}


int main()
{
    int[] a;

    for (int i = 0; i < 1000; i++)
    {
        a.length = a.length + 100;
    }
    foreach (v; a)
    {
        assert(v == 0);
    }

    float[] b;
    for (int i = 0; i < 2000; i++)
    {
        b.length = b.length + 100;
    }
    foreach (v; b)
    {
        assert(isnan(v));
    }
    delete a;
    delete b;

    a = null;
    for (int i = 0; i < 100000; i++)
    {
        a ~= i;
    }
    foreach (k, v; a)
    {
        assert(v == k);
    }

    b = null;
    for (int i = 0; i < 200000; i++)
    {
        b ~= i;
    }
    foreach (k, v; b)
    {
        assert(v == k);
    }
    delete a;
    delete b;

    test12826();
    printf("Success\n");
    return 0;
}