| OLD | NEW | 
|    1 #!/bin/bash |    1 #!/bin/bash | 
|    2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |    2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 
|    3 # Use of this source code is governed by a BSD-style license that can be |    3 # Use of this source code is governed by a BSD-style license that can be | 
|    4 # found in the LICENSE file. |    4 # found in the LICENSE file. | 
|    5  |    5  | 
|    6 # A simple script to run SAFT unit tests and possibly start the SAFT. |    6 # A simple script to run SAFT unit tests and possibly start the SAFT. | 
|    7 # |    7 # | 
|    8 # The only expected optional command line parameter is the name of the file |    8 # The only expected optional command line parameter is the name of the file | 
|    9 # containing the firmware image to test. If the parameter is not provided, |    9 # containing the firmware image to test. If the parameter is not provided, | 
|   10 # SAFT is not started, just the unit tests get to run. |   10 # SAFT is not started, just the unit tests get to run. | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|   24  |   24  | 
|   25 # This hack has been borrowed from src/scripts/common.sh |   25 # This hack has been borrowed from src/scripts/common.sh | 
|   26 enable_rw_mount() { |   26 enable_rw_mount() { | 
|   27   local rootfs="$1" |   27   local rootfs="$1" | 
|   28   local ro_compat_offset=$((0x464 + 3))  # Set 'highest' byte |   28   local ro_compat_offset=$((0x464 + 3))  # Set 'highest' byte | 
|   29   printf '\000' | |   29   printf '\000' | | 
|   30     sudo dd of="$rootfs" seek=${ro_compat_offset} \ |   30     sudo dd of="$rootfs" seek=${ro_compat_offset} \ | 
|   31             conv=notrunc count=1 bs=1 |   31             conv=notrunc count=1 bs=1 | 
|   32 } |   32 } | 
|   33  |   33  | 
 |   34 target_hosted () { | 
 |   35     local vers_sig='/proc/version_signature' | 
 |   36     if [ -f "${vers_sig}" ]; then | 
 |   37         if egrep -iq 'chrom.*os' "${vers_sig}"; then | 
 |   38             echo '1' | 
 |   39             return | 
 |   40         fi | 
 |   41     fi | 
 |   42     echo '0' | 
 |   43 } | 
 |   44  | 
|   34 on_removable_device() { |   45 on_removable_device() { | 
|   35     # Check if the code is running off a removable device or not. |   46     # Check if the code is running off a removable device or not. | 
|   36     # Print '1' or '0' respectively on the console. |   47     # Print '1' or '0' respectively on the console. | 
|   37     rootd=$(df "${this_prog}" | grep '^/dev' | awk '{ print $1 }') |   48     rootd=$(df "${this_prog}" | grep '^/dev' | awk '{ print $1 }') | 
|   38     if [ "${rootd}" == '/dev/root' ]; then |   49     if [ "${rootd}" == '/dev/root' ]; then | 
|   39         rootd=$(rootdev -s) |   50         rootd=$(rootdev -s) | 
|   40     fi |   51     fi | 
|   41     blockd=$(echo "${rootd}"  | sed 's|.*/\([^/0-9]\+\)[0-9]\+|\1|') |   52     blockd=$(echo "${rootd}"  | sed 's|.*/\([^/0-9]\+\)[0-9]\+|\1|') | 
|   42     removable=$(cat /sys/block/"${blockd}"/removable) |   53     removable="/sys/block/"${blockd}"/removable" | 
|   43     echo "${removable}" |   54     if [ -f "${removable}" ]; then | 
 |   55         cat "${removable}" | 
 |   56     else | 
 |   57         echo '0' | 
 |   58     fi | 
|   44 } |   59 } | 
|   45  |   60  | 
|   46 move_to_removable_device() { |   61 move_to_removable_device() { | 
|   47     # Move ourselves to the removable device and run off it. |   62     # Move ourselves to the removable device and run off it. | 
|   48  |   63  | 
|   49     # For simplicity, hardcode the removable device to be /dev/sdb |   64     # For simplicity, hardcode the removable device to be /dev/sdb | 
|   50     flash_device="${DEFAULT_FLASH_DEVICE}" |   65     flash_device="${DEFAULT_FLASH_DEVICE}" | 
|   51     fname="/sys/block/${flash_device}/removable" |   66     fname="/sys/block/${flash_device}/removable" | 
|   52  |   67  | 
|   53     # Confirm SDB exists and is indeed removable. |   68     # Confirm SDB exists and is indeed removable. | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   93 } |  108 } | 
|   94  |  109  | 
|   95 configure_gpt_settings() { |  110 configure_gpt_settings() { | 
|   96     # Let's keep it simple for now, partition 2 is the one to boot. |  111     # Let's keep it simple for now, partition 2 is the one to boot. | 
|   97     cgpt add -i 2 -T 5 -P 9 -S 1 /dev/sda |  112     cgpt add -i 2 -T 5 -P 9 -S 1 /dev/sda | 
|   98     cgpt add -i 4 -T 5 -P 5 -S 1 /dev/sda |  113     cgpt add -i 4 -T 5 -P 5 -S 1 /dev/sda | 
|   99 } |  114 } | 
|  100  |  115  | 
|  101 run_tests() { |  116 run_tests() { | 
|  102     ./test_chromeos_interface.py |  117     ./test_chromeos_interface.py | 
 |  118     if [ "$(target_hosted)" == "0" ]; then | 
 |  119         return | 
 |  120     fi | 
|  103     ./test_flashrom_handler.py "${new_firmware}" |  121     ./test_flashrom_handler.py "${new_firmware}" | 
|  104     ./test_saft_utility.py |  122     ./test_saft_utility.py | 
|  105     ./test_kernel_handler.py |  123     ./test_kernel_handler.py | 
|  106     ./test_cgpt_handler.py |  124     ./test_cgpt_handler.py | 
|  107     ./test_tpm_handler.py |  125     ./test_tpm_handler.py | 
|  108     ./test_cgpt_state.py |  126     ./test_cgpt_state.py | 
|  109  |  127  | 
|  110     if [ -n "${new_firmware}" ]; then |  128     if [ -n "${new_firmware}" ]; then | 
|  111         configure_gpt_settings |  129         configure_gpt_settings | 
|  112         ./saft_utility.py --ima="${new_firmware}" |  130         ./saft_utility.py --ima="${new_firmware}" | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  148 s/dm="[^"]\+" //' > "${new_cmd_line_file}" |  166 s/dm="[^"]\+" //' > "${new_cmd_line_file}" | 
|  149         vbutil_kernel --repack "${other_kern_file}.new" \ |  167         vbutil_kernel --repack "${other_kern_file}.new" \ | 
|  150             --config "${new_cmd_line_file}" \ |  168             --config "${new_cmd_line_file}" \ | 
|  151             --signprivate recovery_kernel_data_key.vbprivk \ |  169             --signprivate recovery_kernel_data_key.vbprivk \ | 
|  152             --oldblob "${other_kern_file}" |  170             --oldblob "${other_kern_file}" | 
|  153         dd if="${other_kern_file}.new" of="${flash_kernel_dev}" bs=4M |  171         dd if="${other_kern_file}.new" of="${flash_kernel_dev}" bs=4M | 
|  154     fi |  172     fi | 
|  155 } |  173 } | 
|  156  |  174  | 
|  157 cd $(dirname ${this_prog}) |  175 cd $(dirname ${this_prog}) | 
|  158 if [ "$(on_removable_device)" == "0" ]; then |  176 if [ "$(on_removable_device)" == "0" -a "$(target_hosted)" == "1" ]; then | 
|  159     check_and_set_saft_environment |  177     check_and_set_saft_environment | 
|  160     move_to_removable_device |  178     move_to_removable_device | 
|  161     exit 0 |  179     exit 0 | 
|  162 fi |  180 fi | 
|  163  |  181  | 
|  164 run_tests |  182 run_tests | 
| OLD | NEW |