[libwebp] Add sanitizer builders
Change-Id: Ia7dd1e5ff1fc0071b158a1dad11e2280bd8f1c7e
Bug: b:185520507
Reviewed-on: https://chromium-review.googlesource.com/c/codecs/infra/+/3245859
Commit-Queue: Roberto Alanis Baez <alanisbaez@google.com>
Reviewed-by: James Zern <jzern@google.com>
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg
index 56e6da1..943c6dd 100644
--- a/infra/config/generated/commit-queue.cfg
+++ b/infra/config/generated/commit-queue.cfg
@@ -554,6 +554,12 @@
builders {
name: "open-codecs/try/libwebp-test-x86_64-w64-mingw32"
}
+ builders {
+ name: "open-codecs/try/libwebp-x86_64-address-sanitizer"
+ }
+ builders {
+ name: "open-codecs/try/libwebp-x86_64-thread-sanitizer"
+ }
retry_config {
single_quota: 1
global_quota: 2
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index a4fc69f..4c9cf6f 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -106,6 +106,594 @@
}
}
builders {
+ name: "libwebp-sanitizer-x86-cfi"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86",'
+ ' "cfi",'
+ ' "enabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86-cfi-disabled"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86",'
+ ' "cfi",'
+ ' "disabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86-integer"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86",'
+ ' "integer",'
+ ' "enabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86-integer-disabled"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86",'
+ ' "integer",'
+ ' "disabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86-undefined"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86",'
+ ' "undefined",'
+ ' "enabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86-undefined-disabled"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86",'
+ ' "undefined",'
+ ' "disabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86_64-cfi"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "cfi",'
+ ' "enabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86_64-cfi-disabled"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "cfi",'
+ ' "disabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86_64-integer"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "integer",'
+ ' "enabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86_64-integer-disabled"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "integer",'
+ ' "disabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86_64-undefined"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "undefined",'
+ ' "enabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-sanitizer-x86_64-undefined-disabled"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": []'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "undefined",'
+ ' "disabled"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
name: "libwebp2-linux"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "cpu:x86-64"
@@ -9816,6 +10404,134 @@
}
}
builders {
+ name: "libwebp-x86_64-address-sanitizer"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.try"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": ['
+ ' {'
+ ' "dest": "android-ndk",'
+ ' "package_path": "infra/recipe_bundles/chromium.googlesource.com/codecs/infra/android-ndk",'
+ ' "version": "latest"'
+ ' },'
+ ' {'
+ ' "dest": "mips-img-linux-gnu/bin",'
+ ' "package_path": "infra/recipe_bundles/chromium.googlesource.com/codecs/infra/mips-img-linux-gnu",'
+ ' "version": "latest"'
+ ' },'
+ ' {'
+ ' "dest": "mips-mti-linux-gnu/bin",'
+ ' "package_path": "infra/recipe_bundles/chromium.googlesource.com/codecs/infra/mips-mti-linux-gnu",'
+ ' "version": "latest"'
+ ' }'
+ ' ]'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "address"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
+ name: "libwebp-x86_64-thread-sanitizer"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu"
+ dimensions: "pool:luci.open-codecs.try"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/codecs/infra"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$codecs/prerequisites": {'
+ ' "cipd_package": ['
+ ' {'
+ ' "dest": "android-ndk",'
+ ' "package_path": "infra/recipe_bundles/chromium.googlesource.com/codecs/infra/android-ndk",'
+ ' "version": "latest"'
+ ' },'
+ ' {'
+ ' "dest": "mips-img-linux-gnu/bin",'
+ ' "package_path": "infra/recipe_bundles/chromium.googlesource.com/codecs/infra/mips-img-linux-gnu",'
+ ' "version": "latest"'
+ ' },'
+ ' {'
+ ' "dest": "mips-mti-linux-gnu/bin",'
+ ' "package_path": "infra/recipe_bundles/chromium.googlesource.com/codecs/infra/mips-mti-linux-gnu",'
+ ' "version": "latest"'
+ ' }'
+ ' ]'
+ ' },'
+ ' "$codecs/script_wrapper": {'
+ ' "script_parser": ['
+ ' {'
+ ' "warnings": {'
+ ' "thresholds": 0'
+ ' }'
+ ' },'
+ ' {'
+ ' "runtime errors": {'
+ ' "thresholds": 0'
+ ' }'
+ ' }'
+ ' ]'
+ ' },'
+ ' "recipe": "run_infra_script",'
+ ' "script_arg": ['
+ ' "x86_64",'
+ ' "thread"'
+ ' ],'
+ ' "script_name": "run_sanitizer_tests.sh"'
+ '}'
+ execution_timeout_secs: 2700
+ service_account: "open-codecs-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ experiments {
+ key: "luci.use_realms"
+ value: 100
+ }
+ }
+ builders {
name: "libwebp2-patch-check"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "cpu:x86-64"
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index 325094d..ba08ba2 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -19,6 +19,54 @@
category: "Linux|18"
}
builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86-cfi"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86-cfi-disabled"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86-integer"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86-integer-disabled"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86-undefined"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86-undefined-disabled"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86_64-cfi"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86_64-cfi-disabled"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86_64-integer"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86_64-integer-disabled"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86_64-undefined"
+ category: "Linux|18"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.ci/libwebp-sanitizer-x86_64-undefined-disabled"
+ category: "Linux|18"
+ }
+ builders {
name: "buildbucket/luci.open-codecs.ci/libwebp2-linux"
category: "Linux|18"
}
@@ -480,6 +528,12 @@
name: "buildbucket/luci.open-codecs.try/libwebp-test-x86_64-w64-mingw32"
}
builders {
+ name: "buildbucket/luci.open-codecs.try/libwebp-x86_64-address-sanitizer"
+ }
+ builders {
+ name: "buildbucket/luci.open-codecs.try/libwebp-x86_64-thread-sanitizer"
+ }
+ builders {
name: "buildbucket/luci.open-codecs.try/libwebp2-patch-check"
}
builders {
diff --git a/infra/config/generated/luci-scheduler.cfg b/infra/config/generated/luci-scheduler.cfg
index bd87f6f..75f51c0 100644
--- a/infra/config/generated/luci-scheduler.cfg
+++ b/infra/config/generated/luci-scheduler.cfg
@@ -25,6 +25,126 @@
}
}
job {
+ id: "libwebp-sanitizer-x86-cfi"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86-cfi"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86-cfi-disabled"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86-cfi-disabled"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86-integer"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86-integer"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86-integer-disabled"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86-integer-disabled"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86-undefined"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86-undefined"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86-undefined-disabled"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86-undefined-disabled"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86_64-cfi"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86_64-cfi"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86_64-cfi-disabled"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86_64-cfi-disabled"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86_64-integer"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86_64-integer"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86_64-integer-disabled"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86_64-integer-disabled"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86_64-undefined"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86_64-undefined"
+ }
+}
+job {
+ id: "libwebp-sanitizer-x86_64-undefined-disabled"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "luci.open-codecs.ci"
+ builder: "libwebp-sanitizer-x86_64-undefined-disabled"
+ }
+}
+job {
id: "libwebp2-linux"
realm: "ci"
acl_sets: "ci"
@@ -69,6 +189,18 @@
id: "libwebp-poller"
realm: "ci"
acl_sets: "ci"
+ triggers: "libwebp-sanitizer-x86-cfi"
+ triggers: "libwebp-sanitizer-x86-cfi-disabled"
+ triggers: "libwebp-sanitizer-x86-integer"
+ triggers: "libwebp-sanitizer-x86-integer-disabled"
+ triggers: "libwebp-sanitizer-x86-undefined"
+ triggers: "libwebp-sanitizer-x86-undefined-disabled"
+ triggers: "libwebp-sanitizer-x86_64-cfi"
+ triggers: "libwebp-sanitizer-x86_64-cfi-disabled"
+ triggers: "libwebp-sanitizer-x86_64-integer"
+ triggers: "libwebp-sanitizer-x86_64-integer-disabled"
+ triggers: "libwebp-sanitizer-x86_64-undefined"
+ triggers: "libwebp-sanitizer-x86_64-undefined-disabled"
gitiles {
repo: "https://chromium.googlesource.com/webm/libwebp"
refs: "regexp:refs/heads/main"
diff --git a/infra/config/subprojects/libwebp/ci.star b/infra/config/subprojects/libwebp/ci.star
index c8273ff..9bcab1e 100644
--- a/infra/config/subprojects/libwebp/ci.star
+++ b/infra/config/subprojects/libwebp/ci.star
@@ -27,6 +27,66 @@
)
load("//lib/ci_helper.star", "ci_helper")
+# Libwebp sanitizer configuration matrix.
+_LIBWEBP_SANITIZER_TARGETS = [
+ "x86",
+ "x86_64",
+]
+_LIBWEBP_SANITIZERS = [
+ "cfi",
+ "integer",
+ "undefined",
+]
+_LIBWEBP_SANITIZERS_EXCLUDED = []
+
+def _libwebp_sanitizers_builder(
+ *,
+ name,
+ script_name,
+ compile_targets = [],
+ sanitizers = [],
+ excluded_builders = [],
+ properties = {},
+ **kwargs):
+ """Defines Libwebp sanitizer builds
+
+ Args:
+ name: name of builder
+ script_name: compilation script
+ sanitizers: compilation script build type list
+ compile_targets: target platform list
+ excluded_builders: filter list to remove builder from lucicfg
+ properties: builder's input properties
+ **kwargs: other keyword args
+ """
+ builders = []
+ for target in compile_targets:
+ for sanitizer in sanitizers:
+ for asm_flag in ["enabled", "disabled"]:
+ builder_name = "%s-%s" % (target, sanitizer)
+
+ if asm_flag == "disabled":
+ builder_name = "%s-%s" % (builder_name, asm_flag)
+
+ if builder_name in excluded_builders:
+ continue
+ builder_name = "%s-%s" % (name, builder_name)
+ overridden_properties = {
+ "script_name": script_name,
+ "script_arg": [target, sanitizer, asm_flag],
+ }
+ overridden_properties.update(properties)
+
+ builders.append(
+ ci_helper.create_builder(
+ name = builder_name,
+ os = "linux",
+ properties = overridden_properties,
+ **kwargs
+ ),
+ )
+ return builders
+
libwebp_ci_builder = ci_helper.setup_builder(
prefix = "libwebp",
repo = LIBWEBP_REPO_URL,
@@ -44,3 +104,16 @@
},
schedule = "0 9 * * *",
)
+
+# Defines libwebp sanitizers.
+libwebp_ci_builder(
+ name = "sanitizer",
+ builder_creator = _libwebp_sanitizers_builder,
+ script_name = "run_sanitizer_tests.sh",
+ compile_targets = _LIBWEBP_SANITIZER_TARGETS,
+ sanitizers = _LIBWEBP_SANITIZERS,
+ excluded_builders = _LIBWEBP_SANITIZERS_EXCLUDED,
+ recipe = "run_infra_script",
+ # TODO(b/185520507): enable schedule when this builder is verified.
+ #schedule = "0 9 * * *",
+)
diff --git a/infra/config/subprojects/libwebp/try.star b/infra/config/subprojects/libwebp/try.star
index 14aab4e..ce987e7 100644
--- a/infra/config/subprojects/libwebp/try.star
+++ b/infra/config/subprojects/libwebp/try.star
@@ -124,7 +124,17 @@
_LIBWEBP_TEST_EXCLUDED = [
]
-# TODO(): Capture index.html output and it will need warning threshold itself.
+# Libwebp sanitizer configuration matrix.
+_LIBWEBP_SANITIZER_TARGETS = [
+ "x86_64",
+]
+_LIBWEBP_SANITIZERS = [
+ "address",
+ "thread",
+]
+_LIBWEBP_SANITIZERS_EXCLUDED = []
+
+# TODO(b/204989118): Capture index.html output and it will need warning threshold itself.
def _libwebp_compile_builder(
*,
name,
@@ -210,6 +220,50 @@
)
return builders
+def _libwebp_sanitizers_builder(
+ *,
+ name,
+ script_name,
+ compile_targets = [],
+ sanitizers = [],
+ excluded_builders = [],
+ properties = {},
+ **kwargs):
+ """Defines Libwebp sanitizer builds
+
+ Args:
+ name: name of builder
+ script_name: compilation script
+ sanitizers: compilation script build type list
+ compile_targets: target platform list
+ excluded_builders: filter list to remove builder from lucicfg
+ properties: builder's input properties
+ **kwargs: other keyword args
+ """
+ builders = []
+ for target in compile_targets:
+ for sanitizer in sanitizers:
+ builder_name = "%s-%s" % (target, sanitizer)
+
+ if builder_name in excluded_builders:
+ continue
+ builder_name = "%s-%s" % (builder_name, name)
+ overridden_properties = {
+ "script_name": script_name,
+ "script_arg": [target, sanitizer],
+ }
+ overridden_properties.update(properties)
+
+ builders.append(
+ try_helper.create_builder(
+ name = builder_name,
+ os = "linux",
+ properties = overridden_properties,
+ **kwargs
+ ),
+ )
+ return builders
+
libwebp_try_builder = try_helper.setup_builder(
prefix = "libwebp",
repo = LIBWEBP_REPO_URL,
@@ -297,3 +351,14 @@
excluded_builders = _LIBWEBP_TEST_EXCLUDED,
recipe = "run_infra_script",
)
+
+# Defines libwebp sanitizers.
+libwebp_try_builder(
+ name = "sanitizer",
+ builder_creator = _libwebp_sanitizers_builder,
+ script_name = "run_sanitizer_tests.sh",
+ compile_targets = _LIBWEBP_SANITIZER_TARGETS,
+ sanitizers = _LIBWEBP_SANITIZERS,
+ excluded_builders = _LIBWEBP_SANITIZERS_EXCLUDED,
+ recipe = "run_infra_script",
+)