unit1323.c (1965B)
1 /*************************************************************************** 2 * _ _ ____ _ 3 * Project ___| | | | _ \| | 4 * / __| | | | |_) | | 5 * | (__| |_| | _ <| |___ 6 * \___|\___/|_| \_\_____| 7 * 8 * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 9 * 10 * This software is licensed as described in the file COPYING, which 11 * you should have received as part of this distribution. The terms 12 * are also available at https://curl.se/docs/copyright.html. 13 * 14 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 15 * copies of the Software, and permit persons to whom the Software is 16 * furnished to do so, under the terms of the COPYING file. 17 * 18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19 * KIND, either express or implied. 20 * 21 * SPDX-License-Identifier: curl 22 * 23 ***************************************************************************/ 24 #include "unitcheck.h" 25 26 static CURLcode test_unit1323(char *arg) 27 { 28 UNITTEST_BEGIN_SIMPLE 29 30 struct a { 31 struct curltime first; 32 struct curltime second; 33 time_t result; 34 }; 35 36 struct a tests[] = { 37 { {36762, 8345 }, {36761, 995926 }, 13 }, 38 { {36761, 995926 }, {36762, 8345 }, -13 }, 39 { {36761, 995926 }, {0, 0}, 36761995 }, 40 { {0, 0}, {36761, 995926 }, -36761995 }, 41 }; 42 43 size_t i; 44 45 for(i = 0; i < CURL_ARRAYSIZE(tests); i++) { 46 timediff_t result = curlx_timediff(tests[i].first, tests[i].second); 47 if(result != tests[i].result) { 48 printf("%ld.%06u to %ld.%06u got %d, but expected %ld\n", 49 (long)tests[i].first.tv_sec, 50 tests[i].first.tv_usec, 51 (long)tests[i].second.tv_sec, 52 tests[i].second.tv_usec, 53 (int)result, 54 (long)tests[i].result); 55 fail("unexpected result!"); 56 } 57 } 58 59 UNITTEST_END_SIMPLE 60 }