• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)14 int 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