1570af302Sopenharmony_ci// leading zero handling according to the manual 2570af302Sopenharmony_ci#define _GNU_SOURCE 3570af302Sopenharmony_ci#include <string.h> 4570af302Sopenharmony_ci#include "test.h" 5570af302Sopenharmony_ci 6570af302Sopenharmony_ci#define ASSERT(x) ((x) || (t_error(#x " failed\n"),0)) 7570af302Sopenharmony_ci 8570af302Sopenharmony_ciint main() 9570af302Sopenharmony_ci{ 10570af302Sopenharmony_ci ASSERT(strverscmp("", "") == 0); 11570af302Sopenharmony_ci ASSERT(strverscmp("a", "a") == 0); 12570af302Sopenharmony_ci ASSERT(strverscmp("a", "b") < 0); 13570af302Sopenharmony_ci ASSERT(strverscmp("b", "a") > 0); 14570af302Sopenharmony_ci ASSERT(strverscmp("000", "00") < 0); 15570af302Sopenharmony_ci ASSERT(strverscmp("00", "000") > 0); 16570af302Sopenharmony_ci ASSERT(strverscmp("a0", "a") > 0); 17570af302Sopenharmony_ci ASSERT(strverscmp("00", "01") < 0); 18570af302Sopenharmony_ci ASSERT(strverscmp("01", "010") < 0); 19570af302Sopenharmony_ci ASSERT(strverscmp("010", "09") < 0); 20570af302Sopenharmony_ci ASSERT(strverscmp("09", "0") < 0); 21570af302Sopenharmony_ci ASSERT(strverscmp("9", "10") < 0); 22570af302Sopenharmony_ci ASSERT(strverscmp("0a", "0") > 0); 23570af302Sopenharmony_ci ASSERT(strverscmp("foobar-1.1.2", "foobar-1.1.3") < 0); 24570af302Sopenharmony_ci ASSERT(strverscmp("foobar-1.1.2", "foobar-1.01.3") > 0); 25570af302Sopenharmony_ci return t_status; 26570af302Sopenharmony_ci} 27