// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.


// The `copyAdditionalJctfCommonFiles` task copies files common to all JCTF test
// cases into an intermediate directory which is then passed to gradle as a
// source set.
//
// Details:
//
// The JCTF source tree consists of individual test cases and other sources
// common to all test cases. The latter is compiled into a single jar file.
//
// The problem is the many common source files are scattered under the same
// directory where the test cases are and gradle has no simple way to add
// individual files to a source set.
//
// That's why we first copy over the common files into an intermediate directory
// then pass gradle the source set as a single directory.

task copyAdditionalJctfCommonFiles(type: Copy) {
    def prefix = 'LibTests/src/com/google/jctf/test/lib/java'
    def inputDir = 'third_party/jctf'
    def outputDir = 'build/additionalJctfCommonFiles'
    doFirst {
        delete outputDir
    }

    // All the files containing "@Test" and also the files located in a directory where there is "@Test"
    // file will be compiled into individual, per-test dex files.
    // Here we need the files not containing "@Test" which are not siblings of "@Test" files. We compile
    // them into a common jar file which will be added into each test's dex file.
    //
    // The following list is compiled with this script:
    //
    // # create list of directories that contain non-"@Test" files but do not contain "@Test" files
    // dirlist=$(comm -23 \
    // <(grep -rL "@Test" "third_party/jctf/LibTests/src/com/google/jctf/test/lib" --include=*.java | sed 's;/[^/]*\.java$;;' | sort | uniq) \
    // <(grep -rl "@Test" "third_party/jctf/LibTests/src/com/google/jctf/test/lib" --include=*.java | sed 's;/[^/]*\.java$;;' | sort | uniq))
    //
    // # all the java files from these dirs
    // (for d in $dirlist; do ls -1 $d/*.java; done) \
    //   | sort | sed 's,.*test/lib/java/,,' | sed -E "s/(.*)/'\1',/"
    def files = [
        'lang/annotation/Annotation/AllTypesAntn2.java',
        'lang/annotation/Annotation/AllTypesAntn.java',
        'lang/Character/CharacterData.java',
        'lang/Character/CharacterUtils.java',
        'lang/Character/Subset/TestSubset.java',
        'lang/Class/ClassAnnotationsData.java',
        'lang/ClassLoader/EmptyCertificate.java',
        'lang/ClassLoader/EmptyClassLoader.java',
        'lang/ClassLoader/setPackageAssertionStatusLjava_lang_StringZ/pckg1/pckg11/C01.java',
        'lang/ClassLoader/setPackageAssertionStatusLjava_lang_StringZ/pckg1/pckg11/pckg111/C01.java',
        'lang/ClassLoader/setPackageAssertionStatusLjava_lang_StringZ/pckg1/pckg11/pckg111/C02.java',
        'lang/ClassLoader/setPackageAssertionStatusLjava_lang_StringZ/pckg1/pckg12/C01.java',
        'lang/Class/PackageAccessible.java',
        'lang/Class/PackageInstantiable.java',
        'lang/Enum/EnumMocks.java',
        'lang/InheritableThreadLocal/TestThread.java',
        'lang/Number/TestNumber.java',
        'lang/Package/PackageAnnotationsData.java',
        'lang/Package/PackageLoader.java',
        'lang/ProcessBuilder/ProcessBuilderHelper.java',
        'lang/reflect/AccessibleObject/ChildTestClass.java',
        'lang/reflect/AccessibleObject/ClassTestAnnotation.java',
        'lang/reflect/AccessibleObject/DefaultTestAnnotation.java',
        'lang/reflect/AccessibleObject/Helper.java',
        'lang/reflect/AccessibleObject/Runtime1TestAnnotation.java',
        'lang/reflect/AccessibleObject/Runtime2TestAnnotation.java',
        'lang/reflect/AccessibleObject/Runtime3TestAnnotation.java',
        'lang/reflect/AccessibleObject/SourceTestAnnotation.java',
        'lang/reflect/AccessibleObject/TestClass.java',
        'lang/reflect/Constructor/ConstructorAnnotationsData.java',
        'lang/reflect/Constructor/ConstructorTestHelper.java',
        'lang/reflect/Constructor/PrivateClass.java',
        'lang/reflect/Constructor/PrivateConstructor.java',
        'lang/reflect/Field/FieldAnnotationsData.java',
        'lang/reflect/Field/TestExceptionInInitializerError.java',
        'lang/reflect/Field/TestFinalObjectField.java',
        'lang/reflect/Field/TestFinalPrimitiveField.java',
        'lang/reflect/Field/TestObjectField.java',
        'lang/reflect/Field/TestOtherField.java',
        'lang/reflect/Field/TestPrimitiveField.java',
        'lang/reflect/Field/TestStaticFinalObjectField.java',
        'lang/reflect/Field/TestStaticFinalPrimitiveField.java',
        'lang/reflect/Field/TestStaticObjectField.java',
        'lang/reflect/Field/TestStaticPrimitiveField.java',
        'lang/reflect/Method/AbstractTestMethod.java',
        'lang/reflect/Method/MethodAnnotationsData.java',
        'lang/reflect/Method/PrivateClass.java',
        'lang/reflect/Method/PrivateMethod.java',
        'lang/reflect/Method/TestMethod.java',
        'lang/reflect/Method/TestMethodSub.java',
        'lang/reflect/Proxy/HiddenInterface.java',
        'lang/reflect/Proxy/NullHandler.java',
        'lang/ref/MemoryHog.java',
        'lang/ref/MyReferenceQueue.java',
        'lang/ref/PhantomReference/MyPhantomReference.java',
        'lang/ref/SoftReference/MySoftReference.java',
        'lang/ref/WeakReference/MyWeakReference.java',
        'lang/Runtime/CountLoads.java',
        'lang/Runtime/CWD.java',
        'lang/Runtime/EchoArgs.java',
        'lang/Runtime/EchoEnv.java',
        'lang/SecurityManager/CheckingDomain.java',
        'lang/SecurityManager/SecurityManagerTest.java',
        'lang/StackTraceElement/ElementData.java',
        'lang/StackTraceElement/InitTestFixture.java',
        'lang/StackTraceElement/StaticInitTestFixture.java',
        'lang/StackTraceElement/TestFixture.java',
        'lang/StrictMath/FPUtil.java',
        'lang/StringBuffer/MultiThreadTestHelper.java',
        'lang/String/String_Character.java',
        'lang/String/StringHelper.java',
        'lang/String/String_ISO88591.java',
        'lang/String/String_UnicodeCodePoint.java',
        'lang/String/String_USASCII.java',
        'lang/String/String_UTF16BE.java',
        'lang/String/String_UTF16.java',
        'lang/String/String_UTF16LE.java',
        'lang/String/String_UTF8.java',
        'lang/System/System_propertyKeys.java',
        'lang/Thread/CatchThread.java',
        'lang/Thread/CheckHandler.java',
        'lang/Thread/CheckRun.java',
        'lang/ThreadGroup/AccessCheckThread.java',
        'lang/ThreadGroup/CatchGroup.java',
        'lang/ThreadGroup/MyThread.java',
        'lang/ThreadGroup/SMTestCheckAccessThreadGroupThrowSE.java',
        'lang/ThreadGroup/SMTestCheckAccessThreadGroupWasCalled.java',
        'lang/ThreadGroup/SMTestCheckAccessThreadThrowSE.java',
        'lang/ThreadGroup/ThreadGroupHelper.java',
        'lang/Thread/SlowIncThread.java',
        'lang/Thread/StepThread.java',
        'lang/Thread/WaitRun.java',
        'lang/Throwable/Exception1.java',
        'lang/Throwable/Exception2.java',
        'lang/Throwable/Exception3.java',
        'lang/Throwable/MethodStackFixture.java',
        'lang/Throwable/MultipleExceptionsFixture.java',
        'lang/Throwable/MultipleExceptionsStackChecker.java',
        'util/concurrent/AbstractExecutorService/DirectExecutorService.java',
        'util/concurrent/AdjustablePolicy.java',
        'util/concurrent/ArrayBlockingQueue/ArrayBlockingQueueHelper.java',
        'util/concurrent/CheckedCallable.java',
        'util/concurrent/CheckedInterruptedCallable.java',
        'util/concurrent/CheckedInterruptedRunnable.java',
        'util/concurrent/CheckedRunnable.java',
        'util/concurrent/ConcurrentHashMap/ConcurrentHashMapHelper.java',
        'util/concurrent/ConcurrentLinkedQueue/ConcurrentLinkedQueueHelper.java',
        'util/concurrent/ConcurrentSkipListMap/ConcurrentSkipListMapHelper.java',
        'util/concurrent/ConcurrentSkipListSet/ConcurrentSkipListSetHelper.java',
        'util/concurrent/ConcurrentSkipListSet/MyReverseComparator.java',
        'util/concurrent/CopyOnWriteArrayList/CopyOnWriteArrayListHelper.java',
        'util/concurrent/CopyOnWriteArraySet/CopyOnWriteArraySetHelper.java',
        'util/concurrent/CyclicBarrier/MyAction.java',
        'util/concurrent/DelayQueue/DelayQueueHelper.java',
        'util/concurrent/DelayQueue/NanoDelay.java',
        'util/concurrent/DelayQueue/PDelay.java',
        'util/concurrent/FutureTask/CounterCallable.java',
        'util/concurrent/FutureTask/PublicFutureTask.java',
        'util/concurrent/Helper.java',
        'util/concurrent/InterruptedCallable.java',
        'util/concurrent/InterruptingCallable.java',
        'util/concurrent/LinkedBlockingDeque/LinkedBlockingDequeHelper.java',
        'util/concurrent/LinkedBlockingQueue/LinkedBlockingQueueHelper.java',
        'util/concurrent/MediumPossiblyInterruptedRunnable.java',
        'util/concurrent/MediumRunnable.java',
        'util/concurrent/NoOpCallable.java',
        'util/concurrent/NoOpREHandler.java',
        'util/concurrent/NoOpRunnable.java',
        'util/concurrent/NPETask.java',
        'util/concurrent/PriorityBlockingQueue/MyReverseComparator.java',
        'util/concurrent/PriorityBlockingQueue/PriorityBlockingQueueHelper.java',
        'util/concurrent/RunnableShouldThrow.java',
        'util/concurrent/ScheduledThreadPoolExecutor/CustomExecutor.java',
        'util/concurrent/ScheduledThreadPoolExecutor/CustomTask.java',
        'util/concurrent/ScheduledThreadPoolExecutor/RunnableCounter.java',
        'util/concurrent/Semaphore/InterruptedLockRunnable.java',
        'util/concurrent/Semaphore/InterruptibleLockRunnable.java',
        'util/concurrent/Semaphore/PublicSemaphore.java',
        'util/concurrent/ShortRunnable.java',
        'util/concurrent/SimpleThreadFactory.java',
        'util/concurrent/SmallCallable.java',
        'util/concurrent/SmallPossiblyInterruptedRunnable.java',
        'util/concurrent/SmallRunnable.java',
        'util/concurrent/StringTask.java',
        'util/concurrent/ThreadPoolExecutor/CustomTask.java',
        'util/concurrent/ThreadPoolExecutor/CustomTPE.java',
        'util/concurrent/ThreadPoolExecutor/ExtendedTPE.java',
        'util/concurrent/ThreadPoolExecutor/FailingThreadFactory.java',
        'util/concurrent/ThreadShouldThrow.java',
        'util/concurrent/TrackedCallable.java',
        'util/concurrent/TrackedLongRunnable.java',
        'util/concurrent/TrackedNoOpRunnable.java',
        'util/concurrent/TrackedShortRunnable.java',
    ]
    files.each {
        def dir = new File(it).parent
        from ("$inputDir/$prefix/$it") {
            into "$prefix/$dir"
        }

    }

    def prefixNoPackage = 'LibTests/src'
    def filesNoPackage = [
        'DefaultPackageInterface.java',
        'UnnamedPackageClass.java'
    ]
    filesNoPackage.each {
        from ("$inputDir/$prefixNoPackage/$it") {
            into "$prefixNoPackage"
        }
    }

    into outputDir
}
