[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/build/uClibc/test/stdlib/teststrtol.c b/ap/build/uClibc/test/stdlib/teststrtol.c
new file mode 100644
index 0000000..5b43a9b
--- /dev/null
+++ b/ap/build/uClibc/test/stdlib/teststrtol.c
@@ -0,0 +1,109 @@
+
+#include <stdlib.h>
+#include <stdio.h>
+
+
+const char *strings[]={
+	/* some simple stuff */
+	"0", "1", "10",
+	"100", "1000", "10000", "100000", "1000000",
+	"10000000", "100000000", "1000000000",
+
+	/* negative */
+	"-0", "-1", "-10",
+	"-100", "-1000", "-10000", "-100000", "-1000000",
+	"-10000000", "-100000000", "-1000000000",
+
+	/* test base>10 */
+	"a", "b", "f", "g", "z",
+
+	/* test hex */
+	"0x0", "0x1", "0xa", "0xf", "0x10",
+
+	/* test octal */
+	"00", "01", "07", "08", "0a", "010",
+
+	/* other */
+	"0x8000000",
+
+	/* check overflow cases: (for 32 bit) */
+	"2147483645",
+	"2147483646",
+	"2147483647",
+	"2147483648",
+	"2147483649",
+	"-2147483645",
+	"-2147483646",
+	"-2147483647",
+	"-2147483648",
+	"-2147483649",
+	"4294967293",
+	"4294967294",
+	"4294967295",
+	"4294967296",
+	"4294967297",
+	"-4294967293",
+	"-4294967294",
+	"-4294967295",
+	"-4294967296",
+	"-4294967297",
+
+	/* bad input tests */
+	"",
+	"00",
+	"0x",
+	"0x0",
+	"-",
+	"+",
+	" ",
+	" -",
+	" - 0",
+};
+int n_tests=sizeof(strings)/sizeof(strings[0]);
+
+void do_test(int base);
+void do_utest(int base);
+
+int main(int argc,char *argv[])
+{
+	do_test(0);
+	do_test(8);
+	do_test(10);
+	do_test(16);
+	do_test(36);
+
+	do_utest(0);
+	do_utest(8);
+	do_utest(10);
+	do_utest(16);
+	do_utest(36);
+
+	return 0;
+}
+
+void do_test(int base)
+{
+	int i;
+	long n;
+	char *endptr;
+
+	for(i=0;i<n_tests;i++){
+		n=strtol(strings[i],&endptr,base);
+		printf("strtol(\"%s\",%d) len=%lu res=%ld\n",
+			strings[i],base,(unsigned long)(endptr-strings[i]),n);
+	}
+}
+
+void do_utest(int base)
+{
+	int i;
+	unsigned long n;
+	char *endptr;
+
+	for(i=0;i<n_tests;i++){
+		n=strtoul(strings[i],&endptr,base);
+		printf("strtoul(\"%s\",%d) len=%lu res=%lu\n",
+			strings[i],base,(unsigned long)(endptr-strings[i]),n);
+	}
+}
+