test_unistd_misc fixes, and some syscall tweaks

This commit is contained in:
Alon Zakai 2015-05-28 11:56:38 -07:00
Родитель 03e8538fc0
Коммит 1043c6776b
3 изменённых файлов: 10 добавлений и 6 удалений

Просмотреть файл

@ -592,12 +592,12 @@ mergeInto(LibraryManager.library, {
case {{{ cDefine('TIOCGPGRP') }}}: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
var argp = get();
{{{ makeSetValue('argp', 0, 123, 'i32') }}};
{{{ makeSetValue('argp', 0, 0, 'i32') }}};
return 0;
}
case {{{ cDefine('TIOCSPGRP') }}}: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0; // no-op
return -ERRNO_CODES.EINVAL; // not supported
}
default: abort('bad ioctl syscall ' + op);
}

Просмотреть файл

@ -4,6 +4,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <grp.h>
#include <assert.h>
#include <emscripten.h>
int main() {
@ -15,6 +16,9 @@ int main() {
);
int f = open("working", O_RDONLY);
assert(f);
int t = open("/dev/stdin", O_RDONLY);
assert(t);
sync();
@ -32,14 +36,14 @@ int main() {
printf(", errno: %d\n", errno);
errno = 0;
printf("tcgetpgrp(good): %d", tcgetpgrp(f));
printf("tcgetpgrp(good): %d", tcgetpgrp(t));
printf(", errno: %d\n", errno);
errno = 0;
printf("tcgetpgrp(bad): %d", tcgetpgrp(42));
printf(", errno: %d\n", errno);
errno = 0;
printf("tcsetpgrp(good): %d", tcsetpgrp(f, 123));
printf("tcsetpgrp(good): %d", tcsetpgrp(t, 123));
printf(", errno: %d\n", errno);
errno = 0;
printf("tcsetpgrp(bad): %d", tcsetpgrp(42, 123));

Просмотреть файл

@ -3,9 +3,9 @@ fsync(bad): -1, errno: 9
fdatasync(good): 0, errno: 0
fdatasync(bad): -1, errno: 9
tcgetpgrp(good): 0, errno: 0
tcgetpgrp(bad): 0, errno: 0
tcgetpgrp(bad): -1, errno: 9
tcsetpgrp(good): -1, errno: 22
tcsetpgrp(bad): -1, errno: 22
tcsetpgrp(bad): -1, errno: 9
link: -1, errno: 31
lockf(good): 0, errno: 0
lockf(bad): -1, errno: 9