NAME=pt print unix epoch time
FILE=bins/elf/ls
CMDS= b 0x100 ; pt
EXPECT=<<EOF
Fri Dec 22 23:42:43 2102 UTC
Sat Dec 27 20:04:01 2042 UTC
Fri Dec 26 15:44:17 2042 UTC
Wed Jun 27 18:58:42 2091 UTC
Sat Jul 31 16:36:00 2010 UTC
Wed Aug  4 13:18:05 1976 UTC
Fri Feb 10 02:20:49 2045 UTC
Thu Jul 23 05:35:09 1970 UTC
Sun Sep 22 04:33:04 2002 UTC
Sun Feb  7 04:34:48 2106 UTC
Sat Sep  9 21:28:31 2073 UTC
Thu Jan 24 02:31:29 2047 UTC
Mon Mar 11 07:52:40 2013 UTC
Sat Apr 12 00:26:47 2008 UTC
Sat Dec 14 02:44:29 2075 UTC
Wed Jun 14 21:58:25 2000 UTC
Mon Apr 28 06:55:52 2008 UTC
Thu Dec  1 16:15:07 2072 UTC
Fri Nov  9 15:38:41 2040 UTC
Tue Aug  4 06:16:32 2105 UTC
Thu Feb 11 16:42:08 2038 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Feb 11 16:41:39 2038 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Sep  3 15:39:52 1987 UTC
Sat Apr 12 00:26:47 2008 UTC
Thu Nov  7 20:20:29 2075 UTC
Fri Dec 13 00:34:09 1991 UTC
Wed Jun 10 12:26:38 2105 UTC
Sun Nov 17 12:11:47 2097 UTC
Tue Dec 23 22:27:20 2003 UTC
Tue Sep  9 04:53:28 2008 UTC
Sun Nov 16 08:35:29 1980 UTC
Tue Jun 11 05:31:52 2002 UTC
Sat Apr 12 00:26:44 2008 UTC
Mon Jul  1 00:06:29 1974 UTC
Fri Mar 10 17:55:11 1978 UTC
Thu Jan  1 04:50:39 1970 UTC
Thu Feb 11 16:41:39 2038 UTC
Thu Jan  1 00:00:00 1970 UTC
Fri Dec 22 23:42:43 2102 UTC
Wed Dec  4 10:03:44 2075 UTC
Mon Mar 15 03:31:13 2032 UTC
Tue Oct 18 13:01:39 2039 UTC
Wed Dec  9 23:58:53 1970 UTC
Fri Dec 26 08:59:44 2042 UTC
Tue Apr 22 05:17:25 2008 UTC
Thu May 31 23:26:03 2074 UTC
Fri Sep 11 05:13:37 1981 UTC
Fri Jan  2 08:09:04 1970 UTC
Sat Feb  6 19:22:16 2106 UTC
Sat Aug 23 23:55:43 1980 UTC
Tue Jul 14 04:27:51 1970 UTC
Fri Sep  2 06:17:01 1994 UTC
Sat Apr 11 05:11:43 1970 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Sep  1 23:41:55 1994 UTC
Sat Apr 11 05:11:43 1970 UTC
Thu Jan  1 00:00:00 1970 UTC
Wed Feb 18 15:17:35 1970 UTC
Fri Dec 22 23:42:43 2102 UTC
Sat Feb  6 19:39:21 2106 UTC
Thu Feb 11 16:42:39 2038 UTC
Thu Jan  1 00:00:00 1970 UTC
EOF
RUN

NAME=ptn print ntfs time
FILE=bins/elf/ls
CMDS= b 0x100 ; ptn
EXPECT=<<EOF
Thu Jul 16 17:29:08 2054 UTC
Thu Feb 24 01:25:59 2061 UTC
Mon Apr  5 19:32:02 1982 UTC
Thu Jan  1 00:00:00 1970 UTC
Mon Oct 26 12:42:44 2076 UTC
Fri Apr 20 22:08:14 2035 UTC
Fri Jul 17 22:48:22 1981 UTC
Fri Mar 10 18:54:44 2023 UTC
Fri Nov  2 02:04:07 1979 UTC
Tue Feb  9 06:07:48 1993 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Jan  1 00:00:00 1970 UTC
Fri Jul 17 22:47:01 1981 UTC
Sat Jun 25 04:16:55 2044 UTC
Fri Jul 21 03:58:10 2084 UTC
Mon Jan 17 17:32:50 2022 UTC
Tue Aug 31 00:56:25 2060 UTC
Sat Sep 30 14:22:51 2034 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Jan  1 00:00:00 1970 UTC
Tue Oct 10 07:15:52 2045 UTC
Wed Feb  3 06:14:06 2044 UTC
Sun Oct 27 02:19:22 2052 UTC
Sat Oct 30 18:04:11 2077 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Dec  1 22:09:25 2089 UTC
Fri Sep 16 18:15:58 1988 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Jan  1 00:00:00 1970 UTC
Thu Jan  1 00:00:00 1970 UTC
Tue May 19 19:53:59 2076 UTC
Thu Jan  1 00:00:00 1970 UTC
EOF
RUN

NAME=ptd print ms-dos time
FILE=bins/elf/ls
CMDS= b 0x100 ; ptd
EXPECT=<<EOF
Fri Jan 30 02:03:38 2105 UTC
Sat Oct 10 05:41:34 2048 UTC
Thu Oct  8 11:54:34 2048 UTC
Sat Apr  3 09:07:04 2094 UTC
Tue Feb 20 10:07:32 2018 UTC
Thu Mar  6 00:44:26 1986 UTC
Sat Oct  8 00:00:02 2050 UTC
Tue Aug 12 05:56:26 1980 UTC
Mon Dec 13 09:00:00 2010 UTC
Wed Feb 23 22:15:00 1972 UTC
Tue Aug 10 02:48:02 2077 UTC
Sat Jul 20 00:00:02 2052 UTC
Tue Sep 29 17:42:16 2020 UTC
Fri Jan  1 00:14:14 2016 UTC
Tue Oct 10 00:44:26 2079 UTC
Wed Oct  8 00:00:02 2008 UTC
Thu Jan 21 14:39:48 2016 UTC
Tue Dec 22 00:44:22 2076 UTC
Mon Oct  8 00:00:02 2046 UTC
Sat Jul  3 08:09:44 1971 UTC
Sun Jan 31 02:03:00 2044 UTC
Tue Jan  1 00:00:00 1980 UTC
Sun Jan 31 02:02:06 2044 UTC
Tue Jan  1 00:00:00 1980 UTC
Sun Sep 29 17:42:16 1996 UTC
Fri Jan  1 00:14:14 2016 UTC
Sat Aug 26 06:44:26 2079 UTC
Sun Oct  8 00:00:02 2000 UTC
Sun Apr 25 02:39:44 1971 UTC
Fri Apr  9 09:00:06 2100 UTC
Fri Mar  9 00:10:16 2012 UTC
Mon Jun  6 00:10:16 2016 UTC
Wed Mar 21 07:54:34 1990 UTC
Thu Aug  5 17:26:16 2010 UTC
Fri Jan  1 00:14:08 2016 UTC
Wed Mar 21 00:04:10 1984 UTC
Sat Nov  7 04:08:02 1987 UTC
Tue Jan  1 08:33:02 1980 UTC
Sun Jan 31 02:02:06 2044 UTC
Tue Jan  1 00:00:00 1980 UTC
Fri Jan 30 02:03:38 2105 UTC
Fri Sep 29 07:44:00 2079 UTC
Sun Aug  1 00:00:02 2038 UTC
Sun Oct  8 10:41:38 2045 UTC
Wed Feb  4 06:17:58 1981 UTC
Thu Oct  8 00:00:00 2048 UTC
Wed Jan 13 14:39:10 2016 UTC
Sun Mar  6 07:44:22 2078 UTC
Sun Mar 31 00:00:02 1991 UTC
Wed Jan  2 00:33:00 1980 UTC
Wed Feb 23 06:03:00 1972 UTC
Sat Jan  6 00:56:02 1990 UTC
Fri Aug  1 00:14:14 1980 UTC
Fri Mar  7 00:26:58 2003 UTC
Fri Apr  4 03:56:30 1980 UTC
Tue Jan  1 00:00:00 1980 UTC
Thu Mar  6 12:54:06 2003 UTC
Fri Apr  4 03:56:30 1980 UTC
Tue Jan  1 00:00:00 1980 UTC
Fri Feb  1 03:56:30 1980 UTC
Fri Jan 30 02:03:38 2105 UTC
Wed Feb 23 06:35:02 1972 UTC
Sun Jan 31 02:04:02 2044 UTC
Tue Jan  1 00:00:00 1980 UTC
EOF
RUN

NAME=pth print mac hfs time
FILE=bins/elf/ls
CMDS= b 0x100 ; pth
EXPECT=<<EOF
Mon Nov 15 17:14:27 2032 UTC
Tue Nov 21 13:35:45 1972 UTC
Mon Nov 20 09:16:01 1972 UTC
Sat May 22 12:30:26 2021 UTC
Fri Jul 31 16:36:00 2076 UTC
Tue Aug  5 13:18:05 2042 UTC
Sun Jan  5 19:52:33 1975 UTC
Wed Jul 23 05:35:09 2036 UTC
Sat Sep 22 04:33:04 2068 UTC
Tue Jan  1 22:06:32 2036 UTC
Tue Aug  5 15:00:15 2003 UTC
Sat Dec 18 20:03:13 1976 UTC
Sun Mar 12 07:52:40 2079 UTC
Fri Apr 13 00:26:47 2074 UTC
Mon Nov  7 20:16:13 2005 UTC
Tue Jun 15 21:58:25 2066 UTC
Sun Apr 29 06:55:52 2074 UTC
Sun Oct 27 09:46:51 2002 UTC
Mon Oct  5 09:10:25 1970 UTC
Thu Jun 28 23:48:16 2035 UTC
Wed Feb 13 16:42:08 2104 UTC
Wed Jan  2 00:00:00 2036 UTC
Wed Feb 13 16:41:39 2104 UTC
Wed Jan  2 00:00:00 2036 UTC
Wed Sep  3 15:39:52 2053 UTC
Fri Apr 13 00:26:47 2074 UTC
Sun Oct  2 13:52:13 2005 UTC
Thu Dec 13 00:34:09 2057 UTC
Sat May  5 05:58:22 2035 UTC
Wed Oct 13 05:43:31 2027 UTC
Mon Dec 23 22:27:20 2069 UTC
Mon Sep 10 04:53:28 2074 UTC
Sat Nov 17 08:35:29 2046 UTC
Mon Jun 11 05:31:52 2068 UTC
Fri Apr 13 00:26:44 2074 UTC
Sun Jul  1 00:06:29 2040 UTC
Thu Mar 10 17:55:11 2044 UTC
Wed Jan  2 04:50:39 2036 UTC
Wed Feb 13 16:41:39 2104 UTC
Wed Jan  2 00:00:00 2036 UTC
Mon Nov 15 17:14:27 2032 UTC
Sat Oct 29 03:35:28 2005 UTC
Sun Mar 16 03:31:13 2098 UTC
Mon Oct 19 13:01:39 2105 UTC
Tue Dec  9 23:58:53 2036 UTC
Mon Nov 20 02:31:28 1972 UTC
Mon Apr 23 05:17:25 2074 UTC
Sun Apr 25 16:57:47 2004 UTC
Thu Sep 12 05:13:37 2047 UTC
Thu Jan  3 08:09:04 2036 UTC
Tue Jan  1 12:54:00 2036 UTC
Fri Aug 24 23:55:43 2046 UTC
Mon Jul 14 04:27:51 2036 UTC
Thu Sep  2 06:17:01 2060 UTC
Fri Apr 11 05:11:43 2036 UTC
Wed Jan  2 00:00:00 2036 UTC
Wed Sep  1 23:41:55 2060 UTC
Fri Apr 11 05:11:43 2036 UTC
Wed Jan  2 00:00:00 2036 UTC
Tue Feb 19 15:17:35 2036 UTC
Mon Nov 15 17:14:27 2032 UTC
Tue Jan  1 13:11:05 2036 UTC
Wed Feb 13 16:42:39 2104 UTC
Wed Jan  2 00:00:00 2036 UTC
EOF
RUN

NAME=pt print unix epoch time (UTC+7:30)
FILE=--
CMDS=<<EOF
# When setting TZ, the sign must be reversed
env TZ=UTC-7:30
!rizin -c 'b 0x100;pt' -q bins/elf/ls
EOF
EXPECT=<<EOF
Sat Dec 23 07:12:43 2102 UTC+7:30
Sun Dec 28 03:34:01 2042 UTC+7:30
Fri Dec 26 23:14:17 2042 UTC+7:30
Thu Jun 28 02:28:42 2091 UTC+7:30
Sun Aug  1 00:06:00 2010 UTC+7:30
Wed Aug  4 20:48:05 1976 UTC+7:30
Fri Feb 10 09:50:49 2045 UTC+7:30
Thu Jul 23 13:05:09 1970 UTC+7:30
Sun Sep 22 12:03:04 2002 UTC+7:30
Sun Feb  7 12:04:48 2106 UTC+7:30
Sun Sep 10 04:58:31 2073 UTC+7:30
Thu Jan 24 10:01:29 2047 UTC+7:30
Mon Mar 11 15:22:40 2013 UTC+7:30
Sat Apr 12 07:56:47 2008 UTC+7:30
Sat Dec 14 10:14:29 2075 UTC+7:30
Thu Jun 15 05:28:25 2000 UTC+7:30
Mon Apr 28 14:25:52 2008 UTC+7:30
Thu Dec  1 23:45:07 2072 UTC+7:30
Fri Nov  9 23:08:41 2040 UTC+7:30
Tue Aug  4 13:46:32 2105 UTC+7:30
Fri Feb 12 00:12:08 2038 UTC+7:30
Thu Jan  1 07:30:00 1970 UTC+7:30
Fri Feb 12 00:11:39 2038 UTC+7:30
Thu Jan  1 07:30:00 1970 UTC+7:30
Thu Sep  3 23:09:52 1987 UTC+7:30
Sat Apr 12 07:56:47 2008 UTC+7:30
Fri Nov  8 03:50:29 2075 UTC+7:30
Fri Dec 13 08:04:09 1991 UTC+7:30
Wed Jun 10 19:56:38 2105 UTC+7:30
Sun Nov 17 19:41:47 2097 UTC+7:30
Wed Dec 24 05:57:20 2003 UTC+7:30
Tue Sep  9 12:23:28 2008 UTC+7:30
Sun Nov 16 16:05:29 1980 UTC+7:30
Tue Jun 11 13:01:52 2002 UTC+7:30
Sat Apr 12 07:56:44 2008 UTC+7:30
Mon Jul  1 07:36:29 1974 UTC+7:30
Sat Mar 11 01:25:11 1978 UTC+7:30
Thu Jan  1 12:20:39 1970 UTC+7:30
Fri Feb 12 00:11:39 2038 UTC+7:30
Thu Jan  1 07:30:00 1970 UTC+7:30
Sat Dec 23 07:12:43 2102 UTC+7:30
Wed Dec  4 17:33:44 2075 UTC+7:30
Mon Mar 15 11:01:13 2032 UTC+7:30
Tue Oct 18 20:31:39 2039 UTC+7:30
Thu Dec 10 07:28:53 1970 UTC+7:30
Fri Dec 26 16:29:44 2042 UTC+7:30
Tue Apr 22 12:47:25 2008 UTC+7:30
Fri Jun  1 06:56:03 2074 UTC+7:30
Fri Sep 11 12:43:37 1981 UTC+7:30
Fri Jan  2 15:39:04 1970 UTC+7:30
Sun Feb  7 02:52:16 2106 UTC+7:30
Sun Aug 24 07:25:43 1980 UTC+7:30
Tue Jul 14 11:57:51 1970 UTC+7:30
Fri Sep  2 13:47:01 1994 UTC+7:30
Sat Apr 11 12:41:43 1970 UTC+7:30
Thu Jan  1 07:30:00 1970 UTC+7:30
Fri Sep  2 07:11:55 1994 UTC+7:30
Sat Apr 11 12:41:43 1970 UTC+7:30
Thu Jan  1 07:30:00 1970 UTC+7:30
Wed Feb 18 22:47:35 1970 UTC+7:30
Sat Dec 23 07:12:43 2102 UTC+7:30
Sun Feb  7 03:09:21 2106 UTC+7:30
Fri Feb 12 00:12:39 2038 UTC+7:30
Thu Jan  1 07:30:00 1970 UTC+7:30
EOF
RUN

NAME=pt print unix epoch time (UTC-10)
FILE=--
CMDS=<<EOF
# When setting TZ, the sign must be reversed
env TZ=UTC+10
!rizin -c 'b 0x100;pt' -q bins/elf/ls
EOF
EXPECT=<<EOF
Fri Dec 22 13:42:43 2102 UTC-10
Sat Dec 27 10:04:01 2042 UTC-10
Fri Dec 26 05:44:17 2042 UTC-10
Wed Jun 27 08:58:42 2091 UTC-10
Sat Jul 31 06:36:00 2010 UTC-10
Wed Aug  4 03:18:05 1976 UTC-10
Thu Feb  9 16:20:49 2045 UTC-10
Wed Jul 22 19:35:09 1970 UTC-10
Sat Sep 21 18:33:04 2002 UTC-10
Sat Feb  6 18:34:48 2106 UTC-10
Sat Sep  9 11:28:31 2073 UTC-10
Wed Jan 23 16:31:29 2047 UTC-10
Sun Mar 10 21:52:40 2013 UTC-10
Fri Apr 11 14:26:47 2008 UTC-10
Fri Dec 13 16:44:29 2075 UTC-10
Wed Jun 14 11:58:25 2000 UTC-10
Sun Apr 27 20:55:52 2008 UTC-10
Thu Dec  1 06:15:07 2072 UTC-10
Fri Nov  9 05:38:41 2040 UTC-10
Mon Aug  3 20:16:32 2105 UTC-10
Thu Feb 11 06:42:08 2038 UTC-10
Wed Dec 31 14:00:00 1969 UTC-10
Thu Feb 11 06:41:39 2038 UTC-10
Wed Dec 31 14:00:00 1969 UTC-10
Thu Sep  3 05:39:52 1987 UTC-10
Fri Apr 11 14:26:47 2008 UTC-10
Thu Nov  7 10:20:29 2075 UTC-10
Thu Dec 12 14:34:09 1991 UTC-10
Wed Jun 10 02:26:38 2105 UTC-10
Sun Nov 17 02:11:47 2097 UTC-10
Tue Dec 23 12:27:20 2003 UTC-10
Mon Sep  8 18:53:28 2008 UTC-10
Sat Nov 15 22:35:29 1980 UTC-10
Mon Jun 10 19:31:52 2002 UTC-10
Fri Apr 11 14:26:44 2008 UTC-10
Sun Jun 30 14:06:29 1974 UTC-10
Fri Mar 10 07:55:11 1978 UTC-10
Wed Dec 31 18:50:39 1969 UTC-10
Thu Feb 11 06:41:39 2038 UTC-10
Wed Dec 31 14:00:00 1969 UTC-10
Fri Dec 22 13:42:43 2102 UTC-10
Wed Dec  4 00:03:44 2075 UTC-10
Sun Mar 14 17:31:13 2032 UTC-10
Tue Oct 18 03:01:39 2039 UTC-10
Wed Dec  9 13:58:53 1970 UTC-10
Thu Dec 25 22:59:44 2042 UTC-10
Mon Apr 21 19:17:25 2008 UTC-10
Thu May 31 13:26:03 2074 UTC-10
Thu Sep 10 19:13:37 1981 UTC-10
Thu Jan  1 22:09:04 1970 UTC-10
Sat Feb  6 09:22:16 2106 UTC-10
Sat Aug 23 13:55:43 1980 UTC-10
Mon Jul 13 18:27:51 1970 UTC-10
Thu Sep  1 20:17:01 1994 UTC-10
Fri Apr 10 19:11:43 1970 UTC-10
Wed Dec 31 14:00:00 1969 UTC-10
Thu Sep  1 13:41:55 1994 UTC-10
Fri Apr 10 19:11:43 1970 UTC-10
Wed Dec 31 14:00:00 1969 UTC-10
Wed Feb 18 05:17:35 1970 UTC-10
Fri Dec 22 13:42:43 2102 UTC-10
Sat Feb  6 09:39:21 2106 UTC-10
Thu Feb 11 06:42:39 2038 UTC-10
Wed Dec 31 14:00:00 1969 UTC-10
EOF
RUN

NAME=pt boundaries
FILE=--
CMDS=<<EOF
$rz=!rizin -c '(pv4s val; wv4 ${val}; sd 4); ..(pv4s 0 0x7fffffff 0x80000000 0xffffffff); s 0; b 16; pt' -q =
(TZ-rz tz; echo; env TZ=${tz}; $rz)
# When setting TZ, the sign must be reversed
..(TZ-rz GMT GMT-2:30:17 GMT+24)
.(TZ-rz GMT+24:0:1) # UB
EOF
EXPECT=<<EOF

Thu Jan  1 00:00:00 1970 UTC
Tue Jan 19 03:14:07 2038 UTC
Tue Jan 19 03:14:08 2038 UTC
Sun Feb  7 06:28:15 2106 UTC

Thu Jan  1 02:30:17 1970 UTC+2:30:17
Tue Jan 19 05:44:24 2038 UTC+2:30:17
Tue Jan 19 05:44:25 2038 UTC+2:30:17
Sun Feb  7 08:58:32 2106 UTC+2:30:17

Wed Dec 31 00:00:00 1969 UTC-24
Mon Jan 18 03:14:07 2038 UTC-24
Mon Jan 18 03:14:08 2038 UTC-24
Sat Feb  6 06:28:15 2106 UTC-24

Tue Dec 30 23:59:59 1969 ERR
Mon Jan 18 03:14:06 2038 UTC-24:0:1
Mon Jan 18 03:14:07 2038 UTC-24:0:1
Sat Feb  6 06:28:14 2106 UTC-24:0:1
EOF
RUN
