1 /* 2 * Copyright (c) 2017 The Chromium OS Authors. All rights reserved. 3 * Use of this source code is governed by a BSD-style license that can be 4 * found in the LICENSE file. 5 */ 6 7 #include <errno.h> 8 #include <stdio.h> 9 #include <string.h> 10 11 #include <sys/timex.h> 12 13 /* This program is expected to run under android alt-syscall. */ main(void)14int main(void) { 15 struct timex buf; 16 int ret; 17 18 /* Test a read operation. Should succeed (i.e. not returning -1). */ 19 memset(&buf, 0, sizeof(buf)); 20 ret = adjtimex(&buf); 21 if (ret == -1) 22 return 1; 23 24 /* Test with nullptr buffer. Should fail with EFAULT. */ 25 ret = adjtimex(NULL); 26 if (ret != -1 || errno != EFAULT) 27 return 2; 28 29 /* 30 * Test a write operation. Under android alt-syscall, should fail with 31 * EPERM. 32 */ 33 buf.modes = ADJ_MAXERROR; 34 ret = adjtimex(&buf); 35 if (ret != -1 || errno != EPERM) 36 return 3; 37 38 /* Passed successfully */ 39 return 0; 40 } 41