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 |