From a27e47f49479993b2541bc5f5c95d9354ed567a0 Mon Sep 17 00:00:00 2001 From: stackotter Date: Sun, 1 Sep 2024 19:39:36 +1000 Subject: [PATCH 1/3] Rename executable targets to kebab case names and remove executable products --- Package.swift | 45 +++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/Package.swift b/Package.swift index 4e47425a..729604f9 100644 --- a/Package.swift +++ b/Package.swift @@ -5,41 +5,26 @@ let package = Package( name: "jpeg", products: [ - .library( name: "JPEG", targets: ["JPEG"]), - .executable(name: "fuzzer", targets: ["JPEGFuzzer"]), - .executable(name: "comparator", targets: ["JPEGComparator"]), - .executable(name: "unit-test", targets: ["JPEGUnitTests"]), - .executable(name: "regression-test", targets: ["JPEGRegressionTests"]), - .executable(name: "integration-test", targets: ["JPEGIntegrationTests"]), - - .executable(name: "decode-basic", targets: ["JPEGDecodeBasic"]), - .executable(name: "encode-basic", targets: ["JPEGEncodeBasic"]), - .executable(name: "decode-advanced", targets: ["JPEGDecodeAdvanced"]), - .executable(name: "encode-advanced", targets: ["JPEGEncodeAdvanced"]), - .executable(name: "in-memory", targets: ["JPEGInMemory"]), - .executable(name: "decode-online", targets: ["JPEGDecodeOnline"]), - .executable(name: "recompress", targets: ["JPEGRecompress"]), - .executable(name: "rotate", targets: ["JPEGRotate"]), - .executable(name: "custom-color", targets: ["JPEGCustomColor"]), + .library(name: "JPEG", targets: ["JPEG"]) ], targets: [ .target( name: "JPEG", path: "sources/jpeg"), - .executableTarget(name: "JPEGFuzzer", dependencies: ["JPEG"], path: "tests/fuzz", + .executableTarget(name: "fuzzer", dependencies: ["JPEG"], path: "tests/fuzz", exclude: [ "data/", ] ), - .executableTarget(name: "JPEGComparator", dependencies: ["JPEG"], path: "tests/compare"), - .executableTarget(name: "JPEGUnitTests", dependencies: ["JPEG"], path: "tests/unit"), - .executableTarget(name: "JPEGRegressionTests", dependencies: ["JPEG"], path: "tests/regression", + .executableTarget(name: "comparator", dependencies: ["JPEG"], path: "tests/compare"), + .executableTarget(name: "unit-test", dependencies: ["JPEG"], path: "tests/unit"), + .executableTarget(name: "regression-test", dependencies: ["JPEG"], path: "tests/regression", exclude: [ "gold/", ] ), - .executableTarget(name: "JPEGIntegrationTests", dependencies: ["JPEG"], path: "tests/integration", + .executableTarget(name: "integration-test", dependencies: ["JPEG"], path: "tests/integration", exclude: [ "decode/", @@ -47,7 +32,7 @@ let package = Package( ] ), - .executableTarget(name: "JPEGDecodeBasic", dependencies: ["JPEG"], path: "examples/decode-basic", + .executableTarget(name: "decode-basic", dependencies: ["JPEG"], path: "examples/decode-basic", exclude: [ "karlie-kwk-2019.jpg.rgb", @@ -55,7 +40,7 @@ let package = Package( "karlie-kwk-2019.jpg.rgb.png", ] ), - .executableTarget(name: "JPEGEncodeBasic", dependencies: ["JPEG"], path: "examples/encode-basic", + .executableTarget(name: "encode-basic", dependencies: ["JPEG"], path: "examples/encode-basic", exclude: [ "karlie-milan-sp12-2011-4-4-0-4.0.jpg", @@ -94,7 +79,7 @@ let package = Package( "karlie-milan-sp12-2011-4-4-4-0.125.jpg", ] ), - .executableTarget(name: "JPEGDecodeAdvanced", dependencies: ["JPEG"], path: "examples/decode-advanced", + .executableTarget(name: "decode-advanced", dependencies: ["JPEG"], path: "examples/decode-advanced", exclude: [ "karlie-2019.jpg-0.640x432.gray", @@ -108,7 +93,7 @@ let package = Package( "karlie-2019.jpg-0.640x432.gray.png", ] ), - .executableTarget(name: "JPEGEncodeAdvanced", dependencies: ["JPEG"], path: "examples/encode-advanced", + .executableTarget(name: "encode-advanced", dependencies: ["JPEG"], path: "examples/encode-advanced", exclude: [ "karlie-cfdas-2011.png.rgb", @@ -116,7 +101,7 @@ let package = Package( "karlie-cfdas-2011.png.rgb.jpg", ] ), - .executableTarget(name: "JPEGInMemory", dependencies: ["JPEG"], path: "examples/in-memory", + .executableTarget(name: "in-memory", dependencies: ["JPEG"], path: "examples/in-memory", exclude: [ "karlie-2011.jpg.rgb.png", @@ -125,7 +110,7 @@ let package = Package( "karlie-2011.jpg.jpg", ] ), - .executableTarget(name: "JPEGDecodeOnline", dependencies: ["JPEG"], path: "examples/decode-online", + .executableTarget(name: "decode-online", dependencies: ["JPEG"], path: "examples/decode-online", exclude: [ "karlie-oscars-2017.jpg-9.rgb.png", @@ -171,7 +156,7 @@ let package = Package( "karlie-oscars-2017.jpg-difference-1.rgb", ] ), - .executableTarget(name: "JPEGRecompress", dependencies: ["JPEG"], path: "examples/recompress", + .executableTarget(name: "recompress", dependencies: ["JPEG"], path: "examples/recompress", exclude: [ "recompressed-requantized.jpg", @@ -179,7 +164,7 @@ let package = Package( "recompressed-full-cycle.jpg", ] ), - .executableTarget(name: "JPEGRotate", dependencies: ["JPEG"], path: "examples/rotate", + .executableTarget(name: "rotate", dependencies: ["JPEG"], path: "examples/rotate", exclude: [ "karlie-kwk-wwdc-2017.jpg", @@ -188,7 +173,7 @@ let package = Package( "karlie-kwk-wwdc-2017-iv.jpg", ] ), - .executableTarget(name: "JPEGCustomColor", dependencies: ["JPEG"], path: "examples/custom-color", + .executableTarget(name: "custom-color", dependencies: ["JPEG"], path: "examples/custom-color", exclude: [ "output.jpg", From 213dc786619630e9b6607cfd44e53172eadc6cf4 Mon Sep 17 00:00:00 2001 From: stackotter Date: Tue, 3 Sep 2024 10:53:59 +1000 Subject: [PATCH 2/3] Update scripts in utils to build executable targets instead of products --- utils/examples | 8 ++++---- utils/fuzz-test | 4 ++-- utils/integration-test | 2 +- utils/regression-test | 2 +- utils/unit-test | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/utils/examples b/utils/examples index 6aef6794..066c8c7c 100755 --- a/utils/examples +++ b/utils/examples @@ -38,13 +38,13 @@ while [ "$1" != "" ] ; do done for path in examples/*/ ; do - product=$(basename $path) + target=$(basename $path) check "error: swift build failed" \ - swift build -c $build_configuration --product $product + swift build -c $build_configuration --target $target binaries=".build/$build_configuration" - if ! [ -f $binaries/$product ]; then - error "error: missing '$product' product" + if ! [ -f $binaries/$target ]; then + error "error: missing '$target' target" fi done diff --git a/utils/fuzz-test b/utils/fuzz-test index 6e16311d..27fb5993 100755 --- a/utils/fuzz-test +++ b/utils/fuzz-test @@ -67,9 +67,9 @@ jpeg_pattern=$prefix/*.$JPEG_EXTENSION ycc_pattern=$prefix/*.$YCC_EXTENSION check "error: swift build failed" \ - swift build -c $build_configuration --product fuzzer + swift build -c $build_configuration --target fuzzer check "error: swift build failed" \ - swift build -c $build_configuration --product comparator + swift build -c $build_configuration --target comparator binaries=".build/$build_configuration" if ! [ -f $binaries/fuzzer ]; then diff --git a/utils/integration-test b/utils/integration-test index 16369de6..c0b6d2b2 100755 --- a/utils/integration-test +++ b/utils/integration-test @@ -38,7 +38,7 @@ while [ "$1" != "" ] ; do done check "error: swift build failed" \ - swift build -c $build_configuration --product $TOOL_NAME + swift build -c $build_configuration --target $TOOL_NAME binaries=".build/$build_configuration" if ! [ -f $binaries/$TOOL_NAME ]; then diff --git a/utils/regression-test b/utils/regression-test index 1324beb7..1ead143a 100755 --- a/utils/regression-test +++ b/utils/regression-test @@ -51,7 +51,7 @@ while [ "$1" != "" ] ; do done check "error: swift build failed" \ - swift build -c $build_configuration --product $TOOL_NAME + swift build -c $build_configuration --target $TOOL_NAME binaries=".build/$build_configuration" if ! [ -f $binaries/$TOOL_NAME ]; then diff --git a/utils/unit-test b/utils/unit-test index 8f009541..e3aa696a 100755 --- a/utils/unit-test +++ b/utils/unit-test @@ -15,7 +15,7 @@ check() } check "error: swift build failed" \ - swift build -c debug --product $TOOL_NAME + swift build -c debug --target $TOOL_NAME binaries=".build/debug" if ! [ -f $binaries/$TOOL_NAME ]; then From 97e2e757ea7e7421be54f09345abf1019e12b519 Mon Sep 17 00:00:00 2001 From: stackotter Date: Mon, 9 Sep 2024 18:48:04 +1000 Subject: [PATCH 3/3] Update utils scripts to hopefully work on Linux again --- utils/examples | 34 ++++++++++++---------------------- utils/fuzz-test | 14 ++------------ utils/integration-test | 10 +--------- utils/regression-test | 10 +--------- utils/unit-test | 10 +--------- 5 files changed, 17 insertions(+), 61 deletions(-) diff --git a/utils/examples b/utils/examples index 066c8c7c..422ef7f1 100755 --- a/utils/examples +++ b/utils/examples @@ -37,20 +37,9 @@ while [ "$1" != "" ] ; do shift done -for path in examples/*/ ; do - target=$(basename $path) - check "error: swift build failed" \ - swift build -c $build_configuration --target $target - - binaries=".build/$build_configuration" - if ! [ -f $binaries/$target ]; then - error "error: missing '$target' target" - fi -done - # run `decode-basic` example check "error: runtime error" \ - .build/$build_configuration/decode-basic + swift run -c $build_configuration decode-basic for file in examples/decode-basic/*.jpg ; do size=$(identify -format "%wx%h" jpg:$file) @@ -59,11 +48,11 @@ done # run `encode-basic` example check "error: runtime error" \ - .build/$build_configuration/encode-basic + swift run -c $build_configuration encode-basic # run `decode-advanced` example check "error: runtime error" \ - .build/$build_configuration/decode-advanced + swift run -c $build_configuration decode-advanced for file in examples/decode-advanced/*.gray ; do size=$(echo $file | sed -r 's/.*\.([0-9]+)x([0-9]+)\.gray/\1x\2/') @@ -76,11 +65,11 @@ done # run `encode-advanced` example check "error: runtime error" \ - .build/$build_configuration/encode-advanced + swift run -c $build_configuration encode-advanced # run `in-memory` example check "error: runtime error" \ - .build/$build_configuration/in-memory + swift run -c $build_configuration in-memory for file in examples/in-memory/*.jpg ; do if [ -f $file.rgb ]; then size=$(identify -format "%wx%h" jpg:$file) @@ -90,7 +79,7 @@ done # run `decode-online` example check "error: runtime error" \ - .build/$build_configuration/decode-online + swift run -c $build_configuration decode-online for file in examples/decode-online/*.jpg ; do size=$(identify -format "%wx%h" jpg:$file) done @@ -100,19 +89,20 @@ done # run `recompress` example check "error: runtime error" \ - .build/$build_configuration/recompress + swift run -c $build_configuration recompress # run `rotate` example check "error: runtime error" \ - .build/$build_configuration/rotate examples/rotate/karlie-kwk-wwdc-2017.jpg examples/rotate/karlie-kwk-wwdc-2017-ii.jpg --rotation ii + swift run -c $build_configuration rotate examples/rotate/karlie-kwk-wwdc-2017.jpg examples/rotate/karlie-kwk-wwdc-2017-ii.jpg --rotation ii + recompress check "error: runtime error" \ - .build/$build_configuration/rotate examples/rotate/karlie-kwk-wwdc-2017.jpg examples/rotate/karlie-kwk-wwdc-2017-iii.jpg --rotation iii + swift run -c $build_configuration rotate examples/rotate/karlie-kwk-wwdc-2017.jpg examples/rotate/karlie-kwk-wwdc-2017-iii.jpg --rotation iii check "error: runtime error" \ - .build/$build_configuration/rotate examples/rotate/karlie-kwk-wwdc-2017.jpg examples/rotate/karlie-kwk-wwdc-2017-iv.jpg --rotation iv + swift run -c $build_configuration rotate examples/rotate/karlie-kwk-wwdc-2017.jpg examples/rotate/karlie-kwk-wwdc-2017-iv.jpg --rotation iv # run `custom-color` example check "error: runtime error" \ - .build/$build_configuration/custom-color + swift run -c $build_configuration custom-color for file in examples/custom-color/*.rgb ; do convert -depth 16 -endian msb -size 1000x200 rgb:$file -depth 16 png:$file-16.png convert -depth 16 -endian msb -size 1000x200 rgb:$file -depth 8 png:$file-8.png diff --git a/utils/fuzz-test b/utils/fuzz-test index 27fb5993..df564328 100755 --- a/utils/fuzz-test +++ b/utils/fuzz-test @@ -66,21 +66,11 @@ done jpeg_pattern=$prefix/*.$JPEG_EXTENSION ycc_pattern=$prefix/*.$YCC_EXTENSION -check "error: swift build failed" \ - swift build -c $build_configuration --target fuzzer -check "error: swift build failed" \ - swift build -c $build_configuration --target comparator - -binaries=".build/$build_configuration" -if ! [ -f $binaries/fuzzer ]; then - error "error: missing fuzzer tool" -fi - mkdir $prefix &> /dev/null rm $jpeg_pattern &> /dev/null check "error: test image generation failed" \ - $binaries/fuzzer --count $count --path $prefix + swift run -c $build_configuration fuzzer --count $count --path $prefix rm $ycc_pattern &> /dev/null @@ -89,4 +79,4 @@ for file in $jpeg_pattern ; do convert -depth 8 -define jpeg:dct-method=float "jpeg:$file" "ycbcr:$file.$YCC_EXTENSION" done -$binaries/comparator $jpeg_pattern +swift run -c $build_configuration comparator $jpeg_pattern diff --git a/utils/integration-test b/utils/integration-test index c0b6d2b2..70ad3267 100755 --- a/utils/integration-test +++ b/utils/integration-test @@ -37,16 +37,8 @@ while [ "$1" != "" ] ; do shift done -check "error: swift build failed" \ - swift build -c $build_configuration --target $TOOL_NAME - -binaries=".build/$build_configuration" -if ! [ -f $binaries/$TOOL_NAME ]; then - error "error: missing $TOOL_NAME tool" -fi - check "error: test failures" \ - $binaries/$TOOL_NAME + swift run -c $build_configuration $TOOL_NAME data=(tests/integration/decode/*.jpg) for file in ${data[@]} ; do diff --git a/utils/regression-test b/utils/regression-test index 1ead143a..cbf6ae80 100755 --- a/utils/regression-test +++ b/utils/regression-test @@ -50,13 +50,5 @@ while [ "$1" != "" ] ; do shift done -check "error: swift build failed" \ - swift build -c $build_configuration --target $TOOL_NAME - -binaries=".build/$build_configuration" -if ! [ -f $binaries/$TOOL_NAME ]; then - error "error: missing $TOOL_NAME tool" -fi - check "error: test failures" \ - $binaries/$TOOL_NAME + swift run -c $build_configuration $TOOL_NAME diff --git a/utils/unit-test b/utils/unit-test index e3aa696a..6f514234 100755 --- a/utils/unit-test +++ b/utils/unit-test @@ -14,13 +14,5 @@ check() "$@" || error "$message" } -check "error: swift build failed" \ - swift build -c debug --target $TOOL_NAME - -binaries=".build/debug" -if ! [ -f $binaries/$TOOL_NAME ]; then - error "error: missing $TOOL_NAME tool" -fi - check "error: test failures" \ - $binaries/$TOOL_NAME + swift run -c debug $TOOL_NAME