Reported by jkhax0r
| 176 | |
| 177 | // Reported by jkhax0r |
| 178 | bool Test2() |
| 179 | { |
| 180 | const char *script = |
| 181 | "uint16 Z1; \n" |
| 182 | "uint8 b1 = 2; \n" |
| 183 | "uint8 b2 = 2; \n" |
| 184 | |
| 185 | //Using '+' |
| 186 | "Z1 = (b1 & 0x00FF) + ((b2 << 8) & 0xFF00); \n" |
| 187 | "b1 = Z1 & 0x00FF; \n" |
| 188 | "b2 = (Z1 >> 8) & 0x00FF; \n" |
| 189 | "assert( b1 == 2 && b2 == 2 ); \n" |
| 190 | |
| 191 | //Using '|' |
| 192 | "Z1 = (b1 & 0x00FF) | ((b2 << 8) & 0xFF00); \n" |
| 193 | "b1 = Z1 & 0x00FF; \n" |
| 194 | "b2 = (Z1 >> 8) & 0x00FF; \n" |
| 195 | "assert( b1 == 2 && b2 == 2 ); \n"; |
| 196 | |
| 197 | bool fail = false; |
| 198 | |
| 199 | asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION); |
| 200 | COutStream out; |
| 201 | engine->SetMessageCallback(asMETHOD(COutStream,Callback), &out, asCALL_THISCALL); |
| 202 | engine->RegisterGlobalFunction("void assert(bool)", asFUNCTION(Assert), asCALL_GENERIC); |
| 203 | |
| 204 | int r = ExecuteString(engine, script); |
| 205 | if( r != asEXECUTION_FINISHED ) |
| 206 | { |
| 207 | TEST_FAILED; |
| 208 | } |
| 209 | |
| 210 | engine->Release(); |
| 211 | |
| 212 | return fail; |
| 213 | } |
| 214 | |
| 215 | } // namespace |
| 216 |
no test coverage detected