#!/bin/bash
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

BUILD_LIBRARY_DIR=$(dirname $0)
. "${BUILD_LIBRARY_DIR}/filesystem_util.sh" || exit 1

set -e -u

# Make die() non-fatal for testing.
exit() {
  echo exit "$@"
}

output_test() {
  local expected_output="$1"
  echo "Testing ${*:2}"
  local actual_output=$("${@:2}")
  if [[ "${expected_output}" != "${actual_output}" ]]; then
    set -x
    actual_output=$("${@:2}")
    set +x
    echo "  Expected: ${expected_output}"
    echo "  Actual:   ${actual_output}"
    false
  fi
}

# key= is parsed as the empty string value
output_test "" fs_parse_option "loop=,ro,offset=1234" "loop" 42

# "key" (without the = after it) is parsed as the empty value as well.
output_test "" fs_parse_option "loop=,ro,offset=1234" "ro" 42

# Make sure "keystuff" is not confused with just "key"
output_test 42 fs_parse_option "loop=,rostuff,offset=1234" "ro" 42

output_test 42 fs_parse_option "loop=,ro,offset=1234" "laap" 42
# offset= interacts with dirty pages in the file in a very poor manner.
# See crbug.com/954188
output_test 'exit 1' fs_parse_option "loop=,ro,offset=1234" "offset" ""

output_test 42 fs_parse_option "loop=,ro,offset=1234" "laap" 42

echo "All tests passed."
exit 0
