diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /sim/ucsim/ftest.cc | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'sim/ucsim/ftest.cc')
| -rw-r--r-- | sim/ucsim/ftest.cc | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/sim/ucsim/ftest.cc b/sim/ucsim/ftest.cc new file mode 100644 index 0000000..eda8f34 --- /dev/null +++ b/sim/ucsim/ftest.cc @@ -0,0 +1,101 @@ +#include <stdio.h> +#include <unistd.h> + +#include "fiocl.h" +#include "utils.h" +#include "charscl.h" + + +void +regular_ftest(char *fn) +{ + int i; + class cl_f *f; + + printf("Testing regular file access: %s\n", fn); + printf("Write test\n"); + f= mk_io(fn, cchars("w")); + f->init(); + f->write_str("proba\n"); + + printf("Read test\n"); + f->open(fn, cchars("r")); + while (f->input_avail()) + { + char buf[100]; + i= f->read(buf, 99); + printf("read=%d\n", i); + if (i) + buf[i]= 0; + else + break; + printf("data:%s\n", buf); + } + f->close(); + + delete f; +} + +void +stdin_ftest() +{ + class cl_f *f= mk_io(NULL, chars("")); + char buf[100]; + int i, p= 0, done= 0; + + printf("STDIN test\n"); + f->use_opened(0, (char*)"r"); + printf("istty= %d\n", f->tty); + i= f->read(buf, 99); + buf[i]= '\0'; + printf("Got: %s\n", buf); + while (done<10) + { + p= 0; + while (f->input_avail()) + { + char c; + i= f->read(&c, 1); + printf("read=%d\n", i); + if ((c == '\n') || + (c == '\r')) + break; + if (i == 0) + break; + if (p<99) + buf[p++]= c; + } + buf[p]= '\0'; + printf("data:%s\n", buf); + //done= strcmp(buf, "exit") == 0; + done++; + } + delete f; +} + +int +main(int argc, char *argv[]) +{ + char *fn; + + if (argc > 1) + fn= argv[1]; + else + fn= (char*)"ftest.txt"; + regular_ftest(fn); + stdin_ftest(); + + double last= dnow(); + int cnt= 0; + while (1) + { + if (dnow() - last > 0.5) + { + last= dnow(); + printf("HUKK\n"); + if (++cnt > 5) + return 0; + } + } + return 0; +} |
