File: bootloader_utils_test.sh

package info (click to toggle)
kworkflow 1%3A0.10-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 5,212 kB
  • sloc: sh: 31,869; perl: 2,172; sql: 268; ansic: 114; xml: 84; python: 76; makefile: 27
file content (156 lines) | stat: -rwxr-xr-x 3,117 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/usr/bin/env bash

include './src/plugins/kernel_install/bootloader.sh'
include './src/plugins/kernel_install/utils.sh'
include './src/lib/kwlib.sh'
include './tests/unit/utils.sh'

declare -r TEST_ROOT_PATH="$PWD"

declare -a fake_dev

function setUp()
{
  local count=0
  local bootloader_file=''

  # Let's create a fake /dev path
  mkdir -p "${SHUNIT_TMPDIR}/dev"

  # SSD, NVME, HD, SD card
  for dev_path in "${fake_dev[@]}"; do
    touch "$dev_path"
  done

  # Add some noise to the /dev file
  mkdir -p "${SHUNIT_TMPDIR}/dev/sdh"
  mkdir -p "${SHUNIT_TMPDIR}/dev/hdz"

  export DEV_PATH="${SHUNIT_TMPDIR}/dev"

  # Create fake grub path
  bootloader_file="${SHUNIT_TMPDIR}/GRUB_FILES"
  mkdir -p "$bootloader_file"
  for file in "${GRUB[@]}"; do
    file="${bootloader_file}/${file}"
    mkdir -p "${file%/*}" && touch "$file"

    [[ "$count" -lt 5 ]] && break
    ((count++))
  done

  # Create fake syslinux path
  bootloader_file="${SHUNIT_TMPDIR}/SYSLINUX_FILES"
  mkdir -p "$bootloader_file"
  count=0
  for file in "${SYSLINUX[@]}"; do
    file="${bootloader_file}/${file}"
    mkdir -p "${file%/*}" && touch "$file"
    [[ "$count" -lt 3 ]] && break
    ((count++))
  done

  # Create fake rpi path
  bootloader_file="${SHUNIT_TMPDIR}/RPI_FILES"
  mkdir -p "$bootloader_file"
  for file in "${RPI_BOOTLOADER[@]}"; do
    file="${bootloader_file}/${file}"
    mkdir -p "${file%/*}" && touch "$file"
  done
}

function create_binary_file()
{
  local input="$1"
  local save_to="$2"
}

function tearDown()
{
  rm -rf "$SHUNIT_TMPDIR"
}

function test_identify_bootloader()
{
  local output

  output="$(
    function bootctl()
    {
      printf 'no\n'
    }
    identify_bootloader ${SHUNIT_TMPDIR}/GRUB_FILES
  )"
  assertEquals "(${LINENO}): Expected Grub" 'GRUB' "$output"

  output="$(
    function bootctl()
    {
      printf 'no\n'
    }

    identify_bootloader ${SHUNIT_TMPDIR}/SYSLINUX_FILES
  )"
  assertEquals "(${LINENO}): Expected Syslinux" 'SYSLINUX' "$output"

  output="$(
    function bootctl()
    {
      printf 'no\n'
    }

    identify_bootloader ${SHUNIT_TMPDIR}/RPI_FILES
  )"
  assertEquals "(${LINENO}): Expected Raspberry Pi" 'RPI_BOOTLOADER' "$output"

  output="$(
    function bootctl()
    {
      printf 'yes\n'
    }

    function is_bootctl_the_default()
    {
      return 0
    }

    identify_bootloader ${SHUNIT_TMPDIR}
  )"
  assertEquals "(${LINENO}): Expected systemd-boot" 'SYSTEMD_BOOT' "$output"
}

function test_get_esp_base_path_call_bootctl_command()
{
  local output
  local expected_cmd='bootctl --print-esp-path'

  output="$(
    function is_bootctl_the_default()
    {
      return 0
    }

    get_esp_base_path 'remote' 'TEST_MODE'
  )"

  assertEquals "(${LINENO}): Expected bootctl command" "$expected_cmd" "$output"
}

function test_get_esp_base_path_not_supported()
{
  local output
  local expected_cmd='bootctl --print-esp-path'

  output="$(
    function is_bootctl_the_default()
    {
      return 22
    }

    get_esp_base_path 'remote' 'TEST_MODE'
  )"

  assertEquals "(${LINENO}): It should be unsupported" "$?" 95
}

invoke_shunit