Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd0f24d1 authored by Pawan Wagh's avatar Pawan Wagh
Browse files

Adding host script to run test fuzzer.

Adding a test fuzzer which calls into TestService which aborts
in implemented methods. This allows us to test fuzzService
functionality. Adding sh_host_test which will run this test.

Test: atest -c fuzz_service_test
Bug: 282239388
Change-Id: I0bfff9b4b7ff124415206a7f40db0e88bee1962d
parent 94134f25
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -40,3 +40,16 @@ cc_fuzz {
        fuzz_on_haiku_device: false,
    },
}

sh_test_host {
    name: "fuzz_service_test",
    src: "run_fuzz_service_test.sh",
    filename: "run_fuzz_service_test.sh",
    test_config: "fuzz_service_test_config.xml",
    data_bins: [
        "test_service_fuzzer_should_crash",
    ],
    required: [
        "test_service_fuzzer_should_crash",
    ],
}
+22 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2023 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<configuration description="Runs fuzzService test">
    <option name="null-device" value="true" />
    <test class="com.android.tradefed.testtype.binary.ExecutableHostTest" >
        <option name="binary" value="run_fuzz_service_test.sh"/>
        <option name="relative-path-execution" value="true" />
    </test>
</configuration>
+42 −0
Original line number Diff line number Diff line
#!/bin/bash
# Copyright (C) 2023 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

color_success=$'\E'"[0;32m"
color_failed=$'\E'"[0;31m"
color_reset=$'\E'"[00m"

FUZZER_NAME=test_service_fuzzer_should_crash
FUZZER_OUT=fuzzer-output

if [ ! -f "$FUZZER_NAME" ]
then
    echo -e "${color_failed}Binary $FUZZER_NAME does not exist"
    echo "${color_reset}"
    exit 1
fi

echo "INFO: Running fuzzer : test_service_fuzzer_should_crash"

./test_service_fuzzer_should_crash -max_total_time=30 &>${FUZZER_OUT}

echo "INFO: Searching fuzzer output for expected crashes"
if grep -q "Expected crash in set" ${FUZZER_OUT};
then
    echo -e "${color_success}Success: Found expected crash. fuzzService test successful!"
else
    echo -e "${color_failed}Failed: Unable to find successful fuzzing output from test_service_fuzzer_should_crash"
    echo "${color_reset}"
    exit 1
fi