comparison packages/language/c/libc/current/tests/stdlib/ldiv.c @ 2:443894e2e912 ecos-v1_2_1-release

Block commit of eCos version 1.2.1
author jlarmour
date Tue, 11 May 1999 12:24:34 +0000
parents 3111d98ba7b3
children c38311975d4f
comparison
equal deleted inserted replaced
1:72f549f0d891 2:443894e2e912
20 // 20 //
21 // The Original Code is eCos - Embedded Cygnus Operating System, released 21 // The Original Code is eCos - Embedded Cygnus Operating System, released
22 // September 30, 1998. 22 // September 30, 1998.
23 // 23 //
24 // The Initial Developer of the Original Code is Cygnus. Portions created 24 // The Initial Developer of the Original Code is Cygnus. Portions created
25 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. 25 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved.
26 // ------------------------------------------- 26 // -------------------------------------------
27 // 27 //
28 //####COPYRIGHTEND#### 28 //####COPYRIGHTEND####
29 //================================================================= 29 //=================================================================
30 //#####DESCRIPTIONBEGIN#### 30 //#####DESCRIPTIONBEGIN####
31 // 31 //
32 // Author(s): ctarpy@cygnus.co.uk, jlarmour@cygnus.co.uk 32 // Author(s): ctarpy, jlarmour
33 // Contributors: jlarmour@cygnus.co.uk 33 // Contributors: jlarmour
34 // Date: 1998/6/3 34 // Date: 1999-02-03
35 // Description: Contains testcode for C library ldiv() function 35 // Description: Contains testcode for C library ldiv() function
36 // 36 //
37 // 37 //
38 //####DESCRIPTIONEND#### 38 //####DESCRIPTIONEND####
39 39
40 // Declarations for test system: 40 // Declarations for test system:
41 // 41 //
42 // TESTCASE_TYPE=CYG_TEST_MODULE 42 // TESTCASE_TYPE=CYG_TEST_MODULE
43 // COMPOUND_TESTCASE 43 // COMPOUND_TESTCASE
44
45
46 // CONFIGURATION
47
48 #include <pkgconf/libc.h> // Configuration header
49 44
50 // INCLUDES 45 // INCLUDES
51 46
52 #include <stdlib.h> 47 #include <stdlib.h>
53 #include <cyg/infra/testcase.h> 48 #include <cyg/infra/testcase.h>
57 // FUNCTIONS 52 // FUNCTIONS
58 53
59 externC void 54 externC void
60 cyg_package_start( void ) 55 cyg_package_start( void )
61 { 56 {
62 #ifdef CYGPKG_LIBC
63 cyg_iso_c_start(); 57 cyg_iso_c_start();
64 #else
65 (void)main(0, NULL);
66 #endif
67 } // cyg_package_start() 58 } // cyg_package_start()
68 59
69 60
70 int 61 int
71 main( int argc, char *argv[] ) 62 main( int argc, char *argv[] )
72 { 63 {
73 #ifdef CYGPKG_LIBC
74 long num, denom; 64 long num, denom;
75 ldiv_t result; 65 ldiv_t result;
76 #endif
77 66
78 CYG_TEST_INIT(); 67 CYG_TEST_INIT();
79 68
80 CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library " 69 CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
81 "ldiv() function"); 70 "ldiv() function");
82 71
83 #ifdef CYGPKG_LIBC
84 num = 10232; 72 num = 10232;
85 denom = 43; 73 denom = 43;
86 result = ldiv(num, denom); 74 result = ldiv(num, denom);
87 CYG_TEST_PASS_FAIL( (result.quot==237) && (result.rem==41), 75 CYG_TEST_PASS_FAIL( (result.quot==237) && (result.rem==41),
88 "ldiv( 10232, 43 )"); 76 "ldiv( 10232, 43 )");
91 denom = 2000; 79 denom = 2000;
92 result = ldiv(num, denom); 80 result = ldiv(num, denom);
93 CYG_TEST_PASS_FAIL( (result.quot==2) && (result.rem==232), 81 CYG_TEST_PASS_FAIL( (result.quot==2) && (result.rem==232),
94 "ldiv( 4232, 2000 )"); 82 "ldiv( 4232, 2000 )");
95 83
96
97 num = 20; 84 num = 20;
98 denom = 20; 85 denom = 20;
99 result = ldiv(num, denom); 86 result = ldiv(num, denom);
100 CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0), 87 CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0),
101 "ldiv( 20, 20 )"); 88 "ldiv( 20, 20 )");
89
90 num = -5;
91 denom = 4;
92 result = ldiv(num, denom);
93 CYG_TEST_PASS_FAIL( (result.quot==-1) && (result.rem==-1),
94 "ldiv( -5, 4 )");
95
96 num = 5;
97 denom = -4;
98 result = ldiv(num, denom);
99 CYG_TEST_PASS_FAIL( (result.quot==-1) && (result.rem==1),
100 "ldiv( 5, -4 )");
101
102 num = -5;
103 denom = -3;
104 result = ldiv(num, denom);
105 CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==-2),
106 "ldiv( -5, -3 )");
107
108 num = -7;
109 denom = -7;
110 result = ldiv(num, denom);
111 CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0),
112 "ldiv( -7, -7 )");
102 113
103 num = 90123456; 114 num = 90123456;
104 denom = 12345678; 115 denom = 12345678;
105 result = ldiv(num, denom); 116 result = ldiv(num, denom);
106 CYG_TEST_PASS_FAIL( (result.quot==7) && (result.rem==3703710), 117 CYG_TEST_PASS_FAIL( (result.quot==7) && (result.rem==3703710),
110 denom = 123; 121 denom = 123;
111 result = ldiv(num, denom); 122 result = ldiv(num, denom);
112 CYG_TEST_PASS_FAIL( (result.quot==732711) && (result.rem==3), 123 CYG_TEST_PASS_FAIL( (result.quot==732711) && (result.rem==3),
113 "ldiv( 90123456, 123 )"); 124 "ldiv( 90123456, 123 )");
114 125
115 #else // ifndef CYGPKG_LIBC
116 CYG_TEST_PASS("Testing is not applicable to this configuration");
117 #endif // ifndef CYGPKG_LIBC
118
119 CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library " 126 CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
120 "ldiv() function"); 127 "ldiv() function");
121 128
122 } // main() 129 } // main()
123 130