00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00022 #include "CuTest.h"
00023 #include "pm.h"
00024
00025
00026
00055 uint8_t const test_code_image0[] =
00056 {
00057 #if !defined(HAVE_CLOSURES) && !defined(HAVE_DEBUG_INFO)
00058 0x0A, 0xFD, 0x00, 0x00, 0x40, 0x01, 0x00, 0x04,
00059 0x02, 0x03, 0x04, 0x00, 0x6D, 0x61, 0x69, 0x6E,
00060 0x03, 0x04, 0x00, 0x74, 0x65, 0x73, 0x74, 0x04,
00061 0x02, 0x0A, 0xCF, 0x00, 0x00, 0x43, 0x09, 0x05,
00062 0x04, 0x01, 0x03, 0x04, 0x00, 0x6D, 0x61, 0x69,
00063 0x6E, 0x04, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00,
00064 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02,
00065 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00,
00066 0x04, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
00067 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,
00068 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04,
00069 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00,
00070 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
00071 0x00, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x7D,
00072 0x00, 0x00, 0x64, 0x05, 0x00, 0x7D, 0x01, 0x00,
00073 0x64, 0x06, 0x00, 0x7D, 0x02, 0x00, 0x78, 0x18,
00074 0x00, 0x7C, 0x01, 0x00, 0x44, 0x5D, 0x10, 0x00,
00075 0x7D, 0x03, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x03,
00076 0x00, 0x37, 0x7D, 0x00, 0x00, 0x71, 0x19, 0x00,
00077 0x57, 0x78, 0x18, 0x00, 0x7C, 0x02, 0x00, 0x44,
00078 0x5D, 0x10, 0x00, 0x7D, 0x03, 0x00, 0x7C, 0x00,
00079 0x00, 0x7C, 0x03, 0x00, 0x38, 0x7D, 0x00, 0x00,
00080 0x71, 0x34, 0x00, 0x57, 0x78, 0x2D, 0x00, 0x7C,
00081 0x01, 0x00, 0x44, 0x5D, 0x25, 0x00, 0x7D, 0x03,
00082 0x00, 0x78, 0x1C, 0x00, 0x7C, 0x02, 0x00, 0x44,
00083 0x5D, 0x14, 0x00, 0x7D, 0x04, 0x00, 0x7C, 0x00,
00084 0x00, 0x7C, 0x03, 0x00, 0x7C, 0x04, 0x00, 0x14,
00085 0x37, 0x7D, 0x00, 0x00, 0x71, 0x5C, 0x00, 0x57,
00086 0x71, 0x4F, 0x00, 0x57, 0x7C, 0x00, 0x00, 0x53,
00087 0x00, 0x64, 0x00, 0x00, 0x84, 0x00, 0x00, 0x5A,
00088 0x00, 0x00, 0x65, 0x00, 0x00, 0x83, 0x00, 0x00,
00089 0x01, 0x64, 0x01, 0x00, 0x53,
00090 #endif
00091 #if defined(HAVE_CLOSURES) && !defined(HAVE_DEBUG_INFO)
00092
00093 0x0A, 0x03, 0x01, 0x00, 0x40, 0x01, 0x00, 0x00,
00094 0x04, 0x02, 0x03, 0x04, 0x00, 0x6D, 0x61, 0x69,
00095 0x6E, 0x03, 0x04, 0x00, 0x75, 0x74, 0x63, 0x6F,
00096 0x04, 0x02, 0x0A, 0xD2, 0x00, 0x00, 0x43, 0x09,
00097 0x05, 0x00, 0x04, 0x01, 0x03, 0x04, 0x00, 0x6D,
00098 0x61, 0x69, 0x6E, 0x04, 0x07, 0x00, 0x01, 0x00,
00099 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
00100 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00,
00101 0x00, 0x00, 0x04, 0x04, 0x01, 0x00, 0x00, 0x00,
00102 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02,
00103 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00,
00104 0x04, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01,
00105 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
00106 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
00107 0x64, 0x01, 0x00, 0x7D, 0x00, 0x00, 0x64, 0x05,
00108 0x00, 0x7D, 0x01, 0x00, 0x64, 0x06, 0x00, 0x7D,
00109 0x02, 0x00, 0x78, 0x18, 0x00, 0x7C, 0x01, 0x00,
00110 0x44, 0x5D, 0x10, 0x00, 0x7D, 0x03, 0x00, 0x7C,
00111 0x00, 0x00, 0x7C, 0x03, 0x00, 0x37, 0x7D, 0x00,
00112 0x00, 0x71, 0x19, 0x00, 0x57, 0x78, 0x18, 0x00,
00113 0x7C, 0x02, 0x00, 0x44, 0x5D, 0x10, 0x00, 0x7D,
00114 0x03, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x03, 0x00,
00115 0x38, 0x7D, 0x00, 0x00, 0x71, 0x34, 0x00, 0x57,
00116 0x78, 0x2D, 0x00, 0x7C, 0x01, 0x00, 0x44, 0x5D,
00117 0x25, 0x00, 0x7D, 0x03, 0x00, 0x78, 0x1C, 0x00,
00118 0x7C, 0x02, 0x00, 0x44, 0x5D, 0x14, 0x00, 0x7D,
00119 0x04, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x03, 0x00,
00120 0x7C, 0x04, 0x00, 0x14, 0x37, 0x7D, 0x00, 0x00,
00121 0x71, 0x5C, 0x00, 0x57, 0x71, 0x4F, 0x00, 0x57,
00122 0x7C, 0x00, 0x00, 0x53, 0x00, 0x04, 0x00, 0x64,
00123 0x00, 0x00, 0x84, 0x00, 0x00, 0x5A, 0x00, 0x00,
00124 0x65, 0x00, 0x00, 0x83, 0x00, 0x00, 0x01, 0x64,
00125 0x01, 0x00, 0x53,
00126 #endif
00127 #if !defined(HAVE_CLOSURES) && defined(HAVE_DEBUG_INFO)
00128
00129 0x0A, 0x3D, 0x01, 0x00, 0x40, 0x01, 0x00, 0x01,
00130 0x00, 0x04, 0x02, 0x03, 0x04, 0x00, 0x6D, 0x61,
00131 0x69, 0x6E, 0x03, 0x04, 0x00, 0x75, 0x74, 0x63,
00132 0x6F, 0x03, 0x02, 0x00, 0x09, 0x12, 0x03, 0x08,
00133 0x00, 0x75, 0x74, 0x63, 0x6F, 0x2E, 0x70, 0x79,
00134 0x00, 0x04, 0x02, 0x0A, 0xFD, 0x00, 0x00, 0x43,
00135 0x09, 0x05, 0x01, 0x00, 0x04, 0x01, 0x03, 0x04,
00136 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x03, 0x1E, 0x00,
00137 0x00, 0x02, 0x06, 0x01, 0x06, 0x01, 0x06, 0x02,
00138 0x07, 0x00, 0x06, 0x01, 0x0E, 0x02, 0x07, 0x00,
00139 0x06, 0x01, 0x0E, 0x02, 0x07, 0x00, 0x06, 0x01,
00140 0x07, 0x00, 0x06, 0x01, 0x16, 0x02, 0x03, 0x08,
00141 0x00, 0x75, 0x74, 0x63, 0x6F, 0x2E, 0x70, 0x79,
00142 0x00, 0x04, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00,
00143 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02,
00144 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00,
00145 0x04, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
00146 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,
00147 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04,
00148 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00,
00149 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
00150 0x00, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x7D,
00151 0x00, 0x00, 0x64, 0x05, 0x00, 0x7D, 0x01, 0x00,
00152 0x64, 0x06, 0x00, 0x7D, 0x02, 0x00, 0x78, 0x18,
00153 0x00, 0x7C, 0x01, 0x00, 0x44, 0x5D, 0x10, 0x00,
00154 0x7D, 0x03, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x03,
00155 0x00, 0x37, 0x7D, 0x00, 0x00, 0x71, 0x19, 0x00,
00156 0x57, 0x78, 0x18, 0x00, 0x7C, 0x02, 0x00, 0x44,
00157 0x5D, 0x10, 0x00, 0x7D, 0x03, 0x00, 0x7C, 0x00,
00158 0x00, 0x7C, 0x03, 0x00, 0x38, 0x7D, 0x00, 0x00,
00159 0x71, 0x34, 0x00, 0x57, 0x78, 0x2D, 0x00, 0x7C,
00160 0x01, 0x00, 0x44, 0x5D, 0x25, 0x00, 0x7D, 0x03,
00161 0x00, 0x78, 0x1C, 0x00, 0x7C, 0x02, 0x00, 0x44,
00162 0x5D, 0x14, 0x00, 0x7D, 0x04, 0x00, 0x7C, 0x00,
00163 0x00, 0x7C, 0x03, 0x00, 0x7C, 0x04, 0x00, 0x14,
00164 0x37, 0x7D, 0x00, 0x00, 0x71, 0x5C, 0x00, 0x57,
00165 0x71, 0x4F, 0x00, 0x57, 0x7C, 0x00, 0x00, 0x53,
00166 0x00, 0x64, 0x00, 0x00, 0x84, 0x00, 0x00, 0x5A,
00167 0x00, 0x00, 0x65, 0x00, 0x00, 0x83, 0x00, 0x00,
00168 0x01, 0x64, 0x01, 0x00, 0x53,
00169 #endif
00170 #if defined(HAVE_CLOSURES) && defined(HAVE_DEBUG_INFO)
00171
00172 0x0A, 0x43, 0x01, 0x00, 0x40, 0x01, 0x00, 0x00,
00173 0x01, 0x00, 0x04, 0x02, 0x03, 0x04, 0x00, 0x6D,
00174 0x61, 0x69, 0x6E, 0x03, 0x04, 0x00, 0x75, 0x74,
00175 0x63, 0x6F, 0x03, 0x02, 0x00, 0x09, 0x12, 0x03,
00176 0x08, 0x00, 0x75, 0x74, 0x63, 0x6F, 0x2E, 0x70,
00177 0x79, 0x00, 0x04, 0x02, 0x0A, 0x00, 0x01, 0x00,
00178 0x43, 0x09, 0x05, 0x00, 0x01, 0x00, 0x04, 0x01,
00179 0x03, 0x04, 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x03,
00180 0x1E, 0x00, 0x00, 0x02, 0x06, 0x01, 0x06, 0x01,
00181 0x06, 0x02, 0x07, 0x00, 0x06, 0x01, 0x0E, 0x02,
00182 0x07, 0x00, 0x06, 0x01, 0x0E, 0x02, 0x07, 0x00,
00183 0x06, 0x01, 0x07, 0x00, 0x06, 0x01, 0x16, 0x02,
00184 0x03, 0x08, 0x00, 0x75, 0x74, 0x63, 0x6F, 0x2E,
00185 0x70, 0x79, 0x00, 0x04, 0x07, 0x00, 0x01, 0x00,
00186 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
00187 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00,
00188 0x00, 0x00, 0x04, 0x04, 0x01, 0x00, 0x00, 0x00,
00189 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02,
00190 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00,
00191 0x04, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01,
00192 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
00193 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
00194 0x64, 0x01, 0x00, 0x7D, 0x00, 0x00, 0x64, 0x05,
00195 0x00, 0x7D, 0x01, 0x00, 0x64, 0x06, 0x00, 0x7D,
00196 0x02, 0x00, 0x78, 0x18, 0x00, 0x7C, 0x01, 0x00,
00197 0x44, 0x5D, 0x10, 0x00, 0x7D, 0x03, 0x00, 0x7C,
00198 0x00, 0x00, 0x7C, 0x03, 0x00, 0x37, 0x7D, 0x00,
00199 0x00, 0x71, 0x19, 0x00, 0x57, 0x78, 0x18, 0x00,
00200 0x7C, 0x02, 0x00, 0x44, 0x5D, 0x10, 0x00, 0x7D,
00201 0x03, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x03, 0x00,
00202 0x38, 0x7D, 0x00, 0x00, 0x71, 0x34, 0x00, 0x57,
00203 0x78, 0x2D, 0x00, 0x7C, 0x01, 0x00, 0x44, 0x5D,
00204 0x25, 0x00, 0x7D, 0x03, 0x00, 0x78, 0x1C, 0x00,
00205 0x7C, 0x02, 0x00, 0x44, 0x5D, 0x14, 0x00, 0x7D,
00206 0x04, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x03, 0x00,
00207 0x7C, 0x04, 0x00, 0x14, 0x37, 0x7D, 0x00, 0x00,
00208 0x71, 0x5C, 0x00, 0x57, 0x71, 0x4F, 0x00, 0x57,
00209 0x7C, 0x00, 0x00, 0x53, 0x00, 0x04, 0x00, 0x64,
00210 0x00, 0x00, 0x84, 0x00, 0x00, 0x5A, 0x00, 0x00,
00211 0x65, 0x00, 0x00, 0x83, 0x00, 0x00, 0x01, 0x64,
00212 0x01, 0x00, 0x53,
00213 #endif
00214
00215
00216 0xFF,
00217 };
00218
00219
00225 void
00226 ut_co_loadFromImg_000(CuTest *tc)
00227 {
00228 PmReturn_t retval;
00229 uint8_t const *paddr = test_code_image0;
00230 uint8_t const *pimg = test_code_image0;
00231 pPmObj_t pcodeobject;
00232 uint16_t size;
00233
00234 pm_init(MEMSPACE_RAM, C_NULL);
00235
00236
00237 retval = obj_loadFromImg(MEMSPACE_PROG, &pimg, &pcodeobject);
00238 CuAssertTrue(tc, retval == PM_RET_OK);
00239
00240
00241 paddr++;
00242 size = mem_getWord(MEMSPACE_PROG, &paddr);
00243
00244
00245 CuAssertTrue(tc, pimg == (test_code_image0 + size));
00246
00247 #ifdef HAVE_DEBUG_INFO
00248 CuAssertTrue(tc, ((pPmCo_t)pcodeobject)->co_filename != C_NULL);
00249 CuAssertTrue(tc, ((pPmCo_t)pcodeobject)->co_lnotab != C_NULL);
00250 CuAssertTrue(tc, ((pPmCo_t)pcodeobject)->co_firstlineno != 0xAAAA);
00251 #endif
00252
00253 }
00254
00255
00256
00258 CuSuite *getSuite_testCodeObj(void)
00259 {
00260 CuSuite* suite = CuSuiteNew();
00261
00262 SUITE_ADD_TEST(suite, ut_co_loadFromImg_000);
00263
00264 return suite;
00265 }