aboutsummaryrefslogtreecommitdiff
path: root/tests/runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-xtests/runner.py67
1 files changed, 66 insertions, 1 deletions
diff --git a/tests/runner.py b/tests/runner.py
index e348d8d8..ae46634c 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -3742,6 +3742,28 @@ def process(filename):
}
'''
self.do_run(src, "some string constant")
+
+ def test_istream(self):
+ if self.emcc_args is None: return self.skip('requires libcxx')
+
+ src = '''
+ #include <string>
+ #include <sstream>
+ #include <iostream>
+
+ int main()
+ {
+ std::string mystring("1 2 3");
+ std::istringstream is(mystring);
+ int one, two, three;
+
+ is >> one >> two >> three;
+
+ printf( "%i %i %i", one, two, three );
+ }
+ '''
+ self.do_run(src, "1 2 3")
+
def test_fs_base(self):
Settings.INCLUDE_FULL_LIBRARY = 1
@@ -5785,7 +5807,7 @@ elif 'benchmark' in str(sys.argv):
Building.COMPILER_TEST_OPTS = []
TEST_REPS = 10
- TOTAL_TESTS = 8
+ TOTAL_TESTS = 9
tests_done = 0
total_times = map(lambda x: 0., range(TOTAL_TESTS))
@@ -5918,6 +5940,49 @@ elif 'benchmark' in str(sys.argv):
'''
self.do_benchmark(src, [], 'final: 720.')
+ def test_files(self):
+ src = r'''
+ #include<stdio.h>
+ #include<stdlib.h>
+ #include<assert.h>
+ #include <unistd.h>
+
+ int main() {
+ int N = 100;
+ int M = 1000;
+ int K = 1000;
+ unsigned char *k = (unsigned char*)malloc(K+1), *k2 = (unsigned char*)malloc(K+1);
+ for (int i = 0; i < K; i++) {
+ k[i] = (i % 250) + 1;
+ }
+ k[K] = 0;
+ char buf[100];
+ for (int i = 0; i < N; i++) {
+ sprintf(buf, "/dev/shm/file-%d.dat", i);
+ FILE *f = fopen(buf, "w");
+ for (int j = 0; j < M; j++) {
+ fwrite(k, 1, (j % K) + 1, f);
+ }
+ fclose(f);
+ }
+ for (int i = 0; i < N; i++) {
+ sprintf(buf, "/dev/shm/file-%d.dat", i);
+ FILE *f = fopen(buf, "r");
+ for (int j = 0; j < M; j++) {
+ fread(k2, 1, (j % K) + 1, f);
+ }
+ fclose(f);
+ for (int j = 0; j < K; j++) {
+ assert(k[j] == k2[j]);
+ }
+ unlink(buf);
+ }
+ printf("ok");
+ return 1;
+ }
+ '''
+ self.do_benchmark(src, [], 'ok')
+
def test_copy(self):
src = r'''
#include<stdio.h>