| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Tests for jni_generator.py. | 6 """Tests for jni_generator.py. |
| 7 | 7 |
| 8 This test suite contains various tests for the JNI generator. | 8 This test suite contains various tests for the JNI generator. |
| 9 It exercises the low-level parser all the way up to the | 9 It exercises the low-level parser all the way up to the |
| 10 code generator and ensures the output matches a golden | 10 code generator and ensures the output matches a golden |
| (...skipping 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1342 DCHECK(g_InputStream_clazz); | 1342 DCHECK(g_InputStream_clazz); |
| 1343 DCHECK(g_InputStream_skip); | 1343 DCHECK(g_InputStream_skip); |
| 1344 jlong ret = | 1344 jlong ret = |
| 1345 env->CallLongMethod(obj, | 1345 env->CallLongMethod(obj, |
| 1346 g_InputStream_skip, p0); | 1346 g_InputStream_skip, p0); |
| 1347 base::android::CheckException(env); | 1347 base::android::CheckException(env); |
| 1348 return ret; | 1348 return ret; |
| 1349 } | 1349 } |
| 1350 | 1350 |
| 1351 static jmethodID g_InputStream_Constructor = 0; | 1351 static jmethodID g_InputStream_Constructor = 0; |
| 1352 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) |
| 1353 __attribute__ ((unused)); |
| 1352 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) { | 1354 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) { |
| 1353 /* Must call RegisterNativesImpl() */ | 1355 /* Must call RegisterNativesImpl() */ |
| 1354 DCHECK(g_InputStream_clazz); | 1356 DCHECK(g_InputStream_clazz); |
| 1355 DCHECK(g_InputStream_Constructor); | 1357 DCHECK(g_InputStream_Constructor); |
| 1356 jobject ret = | 1358 jobject ret = |
| 1357 env->NewObject(g_InputStream_clazz, | 1359 env->NewObject(g_InputStream_clazz, |
| 1358 g_InputStream_Constructor); | 1360 g_InputStream_Constructor); |
| 1359 base::android::CheckException(env); | 1361 base::android::CheckException(env); |
| 1360 return ScopedJavaLocalRef<jobject>(env, ret); | 1362 return ScopedJavaLocalRef<jobject>(env, ret); |
| 1361 } | 1363 } |
| 1362 | 1364 |
| 1363 // Step 3: GetMethodIDs and RegisterNatives. | 1365 // Step 3: GetMethodIDs and RegisterNatives. |
| 1364 static void GetMethodIDsImpl(JNIEnv* env) { | 1366 static void GetMethodIDsImpl(JNIEnv* env) { |
| 1365 g_InputStream_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( | 1367 g_InputStream_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( |
| 1366 base::android::GetUnscopedClass(env, kInputStreamClassPath))); | 1368 base::android::GetUnscopedClass(env, kInputStreamClassPath))); |
| 1367 g_InputStream_available = | 1369 g_InputStream_available = |
| 1368 base::android::GetMethodID( | 1370 base::android::GetMethodIDOrNULL( |
| 1369 env, g_InputStream_clazz, | 1371 env, g_InputStream_clazz, |
| 1370 "available", | 1372 "available", |
| 1371 | 1373 |
| 1372 "(" | 1374 "(" |
| 1373 ")" | 1375 ")" |
| 1374 "I"); | 1376 "I"); |
| 1375 | 1377 |
| 1376 g_InputStream_close = | 1378 g_InputStream_close = |
| 1377 base::android::GetMethodID( | 1379 base::android::GetMethodIDOrNULL( |
| 1378 env, g_InputStream_clazz, | 1380 env, g_InputStream_clazz, |
| 1379 "close", | 1381 "close", |
| 1380 | 1382 |
| 1381 "(" | 1383 "(" |
| 1382 ")" | 1384 ")" |
| 1383 "V"); | 1385 "V"); |
| 1384 | 1386 |
| 1385 g_InputStream_mark = | 1387 g_InputStream_mark = |
| 1386 base::android::GetMethodID( | 1388 base::android::GetMethodIDOrNULL( |
| 1387 env, g_InputStream_clazz, | 1389 env, g_InputStream_clazz, |
| 1388 "mark", | 1390 "mark", |
| 1389 | 1391 |
| 1390 "(" | 1392 "(" |
| 1391 "I" | 1393 "I" |
| 1392 ")" | 1394 ")" |
| 1393 "V"); | 1395 "V"); |
| 1394 | 1396 |
| 1395 g_InputStream_markSupported = | 1397 g_InputStream_markSupported = |
| 1396 base::android::GetMethodID( | 1398 base::android::GetMethodIDOrNULL( |
| 1397 env, g_InputStream_clazz, | 1399 env, g_InputStream_clazz, |
| 1398 "markSupported", | 1400 "markSupported", |
| 1399 | 1401 |
| 1400 "(" | 1402 "(" |
| 1401 ")" | 1403 ")" |
| 1402 "Z"); | 1404 "Z"); |
| 1403 | 1405 |
| 1404 g_InputStream_readI = | 1406 g_InputStream_readI = |
| 1405 base::android::GetMethodID( | 1407 base::android::GetMethodIDOrNULL( |
| 1406 env, g_InputStream_clazz, | 1408 env, g_InputStream_clazz, |
| 1407 "read", | 1409 "read", |
| 1408 | 1410 |
| 1409 "(" | 1411 "(" |
| 1410 ")" | 1412 ")" |
| 1411 "I"); | 1413 "I"); |
| 1412 | 1414 |
| 1413 g_InputStream_readI_AB = | 1415 g_InputStream_readI_AB = |
| 1414 base::android::GetMethodID( | 1416 base::android::GetMethodIDOrNULL( |
| 1415 env, g_InputStream_clazz, | 1417 env, g_InputStream_clazz, |
| 1416 "read", | 1418 "read", |
| 1417 | 1419 |
| 1418 "(" | 1420 "(" |
| 1419 "[B" | 1421 "[B" |
| 1420 ")" | 1422 ")" |
| 1421 "I"); | 1423 "I"); |
| 1422 | 1424 |
| 1423 g_InputStream_readI_AB_I_I = | 1425 g_InputStream_readI_AB_I_I = |
| 1424 base::android::GetMethodID( | 1426 base::android::GetMethodIDOrNULL( |
| 1425 env, g_InputStream_clazz, | 1427 env, g_InputStream_clazz, |
| 1426 "read", | 1428 "read", |
| 1427 | 1429 |
| 1428 "(" | 1430 "(" |
| 1429 "[B" | 1431 "[B" |
| 1430 "I" | 1432 "I" |
| 1431 "I" | 1433 "I" |
| 1432 ")" | 1434 ")" |
| 1433 "I"); | 1435 "I"); |
| 1434 | 1436 |
| 1435 g_InputStream_reset = | 1437 g_InputStream_reset = |
| 1436 base::android::GetMethodID( | 1438 base::android::GetMethodIDOrNULL( |
| 1437 env, g_InputStream_clazz, | 1439 env, g_InputStream_clazz, |
| 1438 "reset", | 1440 "reset", |
| 1439 | 1441 |
| 1440 "(" | 1442 "(" |
| 1441 ")" | 1443 ")" |
| 1442 "V"); | 1444 "V"); |
| 1443 | 1445 |
| 1444 g_InputStream_skip = | 1446 g_InputStream_skip = |
| 1445 base::android::GetMethodID( | 1447 base::android::GetMethodIDOrNULL( |
| 1446 env, g_InputStream_clazz, | 1448 env, g_InputStream_clazz, |
| 1447 "skip", | 1449 "skip", |
| 1448 | 1450 |
| 1449 "(" | 1451 "(" |
| 1450 "J" | 1452 "J" |
| 1451 ")" | 1453 ")" |
| 1452 "J"); | 1454 "J"); |
| 1453 | 1455 |
| 1454 g_InputStream_Constructor = | 1456 g_InputStream_Constructor = |
| 1455 base::android::GetMethodID( | 1457 base::android::GetMethodIDOrNULL( |
| 1456 env, g_InputStream_clazz, | 1458 env, g_InputStream_clazz, |
| 1457 "<init>", | 1459 "<init>", |
| 1458 | 1460 |
| 1459 "(" | 1461 "(" |
| 1460 ")" | 1462 ")" |
| 1461 "V"); | 1463 "V"); |
| 1462 | 1464 |
| 1463 } | 1465 } |
| 1464 | 1466 |
| 1465 static bool RegisterNativesImpl(JNIEnv* env) { | 1467 static bool RegisterNativesImpl(JNIEnv* env) { |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1534 test_data, ('com/google/lookhowextremelylongiam/snarf/' | 1536 test_data, ('com/google/lookhowextremelylongiam/snarf/' |
| 1535 'icankeepthisupallday/ReallyLongClassNamesAreAllTheRage')) | 1537 'icankeepthisupallday/ReallyLongClassNamesAreAllTheRage')) |
| 1536 jni_lines = jni_from_java.GetContent().split('\n') | 1538 jni_lines = jni_from_java.GetContent().split('\n') |
| 1537 line = filter(lambda line: line.lstrip().startswith('#ifndef'), | 1539 line = filter(lambda line: line.lstrip().startswith('#ifndef'), |
| 1538 jni_lines)[0] | 1540 jni_lines)[0] |
| 1539 self.assertTrue(len(line) > 80, | 1541 self.assertTrue(len(line) > 80, |
| 1540 ('Expected #ifndef line to be > 80 chars: ', line)) | 1542 ('Expected #ifndef line to be > 80 chars: ', line)) |
| 1541 | 1543 |
| 1542 if __name__ == '__main__': | 1544 if __name__ == '__main__': |
| 1543 unittest.main() | 1545 unittest.main() |
| OLD | NEW |