Skip to content

Commit 5d4ffcf

Browse files
add a testcase, coroutine.
1 parent 27cd43a commit 5d4ffcf

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

.github/workflows/actions.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
./cpi tests/helloworld.cpp
2727
./cpi tests/sqrt.cpp 7
2828
./cpi tests/fibonacci.cpp 10
29+
./cpi tests/fibonacci_coroutine.cpp 50
2930
./cpi tests/unique_ptr.cpp
3031
./cpi tests/optional.cpp
3132
./cpi tests/if_initializer.cpp
@@ -54,6 +55,7 @@ jobs:
5455
./cpi tests/helloworld.cpp
5556
./cpi tests/sqrt.cpp 7
5657
./cpi tests/fibonacci.cpp 10
58+
# ./cpi tests/fibonacci_coroutine.cpp 50
5759
./cpi tests/unique_ptr.cpp
5860
./cpi tests/optional.cpp
5961
./cpi tests/if_initializer.cpp
@@ -84,6 +86,7 @@ jobs:
8486
./cpi tests/helloworld.cpp
8587
./cpi tests/sqrt.cpp 7
8688
./cpi tests/fibonacci.cpp 10
89+
# ./cpi tests/fibonacci_coroutine.cpp 50
8790
./cpi tests/unique_ptr.cpp
8891
./cpi tests/optional.cpp
8992
./cpi tests/if_initializer.cpp
@@ -111,6 +114,7 @@ jobs:
111114
./cpi tests/helloworld.cpp
112115
./cpi tests/sqrt.cpp 7
113116
./cpi tests/fibonacci.cpp 10
117+
# ./cpi tests/fibonacci_coroutine.cpp 50
114118
./cpi tests/unique_ptr.cpp
115119
./cpi tests/optional.cpp
116120
./cpi tests/if_initializer.cpp
@@ -141,6 +145,7 @@ jobs:
141145
./cpi tests/helloworld.cpp
142146
./cpi tests/sqrt.cpp 7
143147
./cpi tests/fibonacci.cpp 10
148+
# ./cpi tests/fibonacci_coroutine.cpp 50
144149
./cpi tests/unique_ptr.cpp
145150
./cpi tests/optional.cpp
146151
./cpi tests/if_initializer.cpp
@@ -230,6 +235,7 @@ jobs:
230235
cpi.bat tests\helloworld.cpp
231236
cpi.bat tests\sqrt.cpp 7
232237
cpi.bat tests\fibonacci.cpp 10
238+
cpi.bat tests\fibonacci_coroutine.cpp 50
233239
cpi.bat tests\unique_ptr.cpp
234240
cpi.bat tests\optional.cpp
235241
cpi.bat tests\if_initializer.cpp
@@ -271,6 +277,7 @@ jobs:
271277
cpi.bat tests\helloworld.cpp
272278
cpi.bat tests\sqrt.cpp 7
273279
cpi.bat tests\fibonacci.cpp 10
280+
cpi.bat tests\fibonacci_coroutine.cpp 50
274281
cpi.bat tests\unique_ptr.cpp
275282
cpi.bat tests\optional.cpp
276283
cpi.bat tests\if_initializer.cpp

tests/fibonacci_coroutine.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include <generator>
2+
#include <iostream>
3+
4+
5+
std::generator<uint64_t> fib(int n)
6+
{
7+
uint64_t a = 0, b = 1;
8+
9+
for (int i = 0; i <= n; ++i) {
10+
co_yield a;
11+
auto next = a + b;
12+
a = b;
13+
b = next;
14+
}
15+
}
16+
17+
int main(int argc, char *argv[])
18+
{
19+
if (argc != 2) {
20+
return 0;
21+
}
22+
23+
uint64_t num = 0;
24+
for (auto v : fib(atoi(argv[1]))) {
25+
num = v;
26+
}
27+
28+
std::cout << "fibonacci: " << num << std::endl;
29+
return 0;
30+
}

0 commit comments

Comments
 (0)