From 2a75244914ee9a1c0fab3823c0e111ac7bea213d Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Mon, 26 Feb 2018 19:28:34 -0600 Subject: [PATCH] Use ".singleFile" instead of "[0]" when we expect just one file This documents our intent more clearly, and actively checks for mistakes rather than silently ignoring unexpected extra files. --- com.ibm.wala.cast.js.nodejs/build.gradle | 2 +- com.ibm.wala.cast.js.test.data/build.gradle | 2 +- com.ibm.wala.core.testdata/build.gradle | 10 +++++----- com.ibm.wala.dalvik.test/build.gradle | 22 ++++++++++----------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/com.ibm.wala.cast.js.nodejs/build.gradle b/com.ibm.wala.cast.js.nodejs/build.gradle index 0373dad90..28a2a9f15 100644 --- a/com.ibm.wala.cast.js.nodejs/build.gradle +++ b/com.ibm.wala.cast.js.nodejs/build.gradle @@ -17,7 +17,7 @@ task downloadNodeJS(type: de.undercouch.gradle.tasks.download.Download) { } task verifyNodeJS(type: VerifyWithStamp, dependsOn: downloadNodeJS) { - src files(downloadNodeJS)[0] + src files(downloadNodeJS).singleFile checksum '33c5ba7a5d45644e70d268d8ad3e57df' } diff --git a/com.ibm.wala.cast.js.test.data/build.gradle b/com.ibm.wala.cast.js.test.data/build.gradle index b71eb516f..e658884cb 100644 --- a/com.ibm.wala.cast.js.test.data/build.gradle +++ b/com.ibm.wala.cast.js.test.data/build.gradle @@ -11,7 +11,7 @@ task downloadAjaxslt(type: de.undercouch.gradle.tasks.download.Download) { } task verifyAjaxslt(type: VerifyWithStamp, dependsOn: downloadAjaxslt) { - src files(downloadAjaxslt)[0] + src files(downloadAjaxslt).singleFile checksum 'c995abe3310a401bb4db7f28a6409756' } diff --git a/com.ibm.wala.core.testdata/build.gradle b/com.ibm.wala.core.testdata/build.gradle index dbc04c815..5fe9a0e2f 100644 --- a/com.ibm.wala.core.testdata/build.gradle +++ b/com.ibm.wala.core.testdata/build.gradle @@ -25,7 +25,7 @@ task downloadBcel(type: Download) { } task verifyBcel(type: VerifyWithStamp, dependsOn: downloadBcel) { - src files(downloadBcel)[0] + src files(downloadBcel).singleFile checksum '19bffd7f217b0eae415f1ef87af2f0bc' } @@ -65,7 +65,7 @@ task cleanDownloadJavaCup(type: Delete) { } task verifyJavaCup(type: VerifyWithStamp, dependsOn: downloadJavaCup) { - src files(downloadJavaCup)[0] + src files(downloadJavaCup).singleFile checksum '2bda8c40abd0cbc295d3038643d6e4ec' } @@ -108,7 +108,7 @@ task downloadOcamlJava(type: Download) { } task verifyOcamlJava(type: VerifyWithStamp, dependsOn: downloadOcamlJava) { - src downloadOcamlJava.outputFiles[0] + src files(downloadOcamlJava).singleFile checksum '45feec6e3889f5073a39c2c4c84878d1' } @@ -120,9 +120,9 @@ task unpackOcamlJava(type: Sync, dependsOn: verifyOcamlJava) { task generateHelloHash(type: JavaExec, dependsOn: unpackOcamlJava) { inputs.file 'ocaml/hello_hash.ml' outputs.file 'hello_hash.jar' - args inputs.files[0], '-o', outputs.files[0] + args inputs.files.singleFile, '-o', outputs.files.singleFile - def ocamlJavaHome = new File(files(unpackOcamlJava)[0], downloadOcamlJava.basename) + def ocamlJavaHome = new File(files(unpackOcamlJava).singleFile, downloadOcamlJava.basename) classpath new File(ocamlJavaHome, 'lib/ocamljava.jar') main 'ocaml.compilers.ocamljavaMain' inputs.dir ocamlJavaHome diff --git a/com.ibm.wala.dalvik.test/build.gradle b/com.ibm.wala.dalvik.test/build.gradle index bf1013a08..f3b5bff0a 100644 --- a/com.ibm.wala.dalvik.test/build.gradle +++ b/com.ibm.wala.dalvik.test/build.gradle @@ -40,7 +40,7 @@ task downloadAndroidSdk(type: Download) { } task verifyAndroidSdk(type: VerifyWithStamp, dependsOn: downloadAndroidSdk) { - src files(downloadAndroidSdk)[0] + src files(downloadAndroidSdk).singleFile algorithm 'SHA-256' checksum downloadAndroidSdk.checksum } @@ -52,31 +52,31 @@ task unpackAndroidSdk(type: Sync, dependsOn: verifyAndroidSdk) { // TODO: factor out common code in installAndroidBuildTools and installAndroidPlatforms task installAndroidBuildTools(type: Exec, dependsOn: unpackAndroidSdk) { - def manager = "${unpackAndroidSdk.outputs.files[0]}/tools/bin/sdkmanager" + def manager = "${unpackAndroidSdk.outputs.files.singleFile}/tools/bin/sdkmanager" ext.version = '26.0.2' commandLine 'sh', '-ceu', "yes 2>/dev/null | $manager build-tools\\;$version >/dev/null" - def androidSdk = unpackAndroidSdk.outputs.files[0] + def androidSdk = unpackAndroidSdk.outputs.files.singleFile inputs.dir "$androidSdk/tools" outputs.dir "$androidSdk/build-tools" } task copyDxJar(type: Sync, dependsOn: installAndroidBuildTools) { - from "${installAndroidBuildTools.outputs.files[0]}/${installAndroidBuildTools.version}/lib/dx.jar" + from "${installAndroidBuildTools.outputs.files.singleFile}/${installAndroidBuildTools.version}/lib/dx.jar" into 'lib' } // TODO: factor out common code in installAndroidBuildTools and installAndroidPlatforms task installAndroidPlatforms(type: Exec, dependsOn: unpackAndroidSdk) { - def manager = "${unpackAndroidSdk.outputs.files[0]}/tools/bin/sdkmanager" + def manager = "${unpackAndroidSdk.outputs.files.singleFile}/tools/bin/sdkmanager" ext.version = "android-${installAndroidBuildTools.version.tokenize('.')[0]}" commandLine 'sh', '-ceu', "yes 2>/dev/null | $manager platforms\\;$version >/dev/null" - def androidSdk = unpackAndroidSdk.outputs.files[0] + def androidSdk = unpackAndroidSdk.outputs.files.singleFile inputs.dir "$androidSdk/tools" outputs.dir "$androidSdk/platforms" } task copyAndroidJar(type: Sync, dependsOn: installAndroidPlatforms) { - from "${installAndroidPlatforms.outputs.files[0]}/${installAndroidPlatforms.version}/android.jar" + from "${installAndroidPlatforms.outputs.files.singleFile}/${installAndroidPlatforms.version}/android.jar" into temporaryDir } @@ -87,7 +87,7 @@ task downloadSampleCup(type: Download) { } task verifySampleCup(type: VerifyWithStamp, dependsOn: downloadSampleCup) { - src files(downloadSampleCup)[0] + src files(downloadSampleCup).singleFile checksum '76b549e7c6e802b811a374248175ecf4' } @@ -98,7 +98,7 @@ task downloadSampleLex(type: Download) { } task verifySampleLex(type: VerifyWithStamp, dependsOn: downloadSampleLex) { - src files(downloadSampleLex)[0] + src files(downloadSampleLex).singleFile checksum 'ae887758b2657981d023a72a165da830' } @@ -110,14 +110,14 @@ dependencies { testCompile( 'junit:junit:4.11', 'org.osgi:org.osgi.core:4.2.0', - files("${copyDxJar.outputs.files[0]}/dx.jar"), + files("${copyDxJar.outputs.files.singleFile}/dx.jar"), project(':com.ibm.wala.core'), project(':com.ibm.wala.dalvik'), project(':com.ibm.wala.shrike'), project(':com.ibm.wala.util'), project(configuration: 'testArchives', path: ':com.ibm.wala.core.tests'), ) - testRuntime files("${copyAndroidJar.outputs.files[0]}/android.jar") + testRuntime files("${copyAndroidJar.outputs.files.singleFile}/android.jar") } processTestResources {