File: profiler_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 (122 lines) | stat: -rwxr-xr-x 3,603 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
#!/usr/bin/env bash

include './scripts/profiler.sh' > '/dev/null' 2>&1
include './tests/unit/utils.sh'

function setUp()
{
  export ORIGINAL_PATH="$PWD"

  declare -ga full_profile

  cd "${SHUNIT_TMPDIR}" || {
    fail "($LINENO): setUp(): It was not possible to move into ${SHUNIT_TMPDIR}"
    return
  }
}

function tearDown()
{
  unset full_profile

  cd "${ORIGINAL_PATH}" || {
    fail "($LINENO): tearDown(): It was not possible to move into ${ORIGINAL_PATH}"
    return
  }
}

function test_process_csv_files_full_single_threaded()
{
  local list_of_csv_filepaths="${SAMPLES_DIR}/scripts/profiler/single_threaded/0.csv"
  local expected

  process_csv_files "$list_of_csv_filepaths" 'full'

  assert_equals_helper 'Wrong number of threads' "$LINENO" 1 "${#full_profile[@]}"

  expected='--> foo'$'\n'
  expected+='  1.000 milliseconds'$'\n'
  expected+='  --> bar'$'\n'
  expected+='    11.000 milliseconds'$'\n'
  expected+='  <-- bar'$'\n'
  expected+='  8.000 milliseconds'$'\n'
  expected+='  --> foobar'$'\n'
  expected+='    251.000 milliseconds'$'\n'
  expected+='<---- foobar'$'\n'
  assert_equals_helper 'Wrong profile of thread 0' "$LINENO" "$expected" "${full_profile[0]}"
}

function test_process_csv_files_full_multi_threaded()
{
  local list_of_csv_filepaths
  local expected

  list_of_csv_filepaths+="${SAMPLES_DIR}/scripts/profiler/multi_threaded/2.csv"$'\n'
  list_of_csv_filepaths+="${SAMPLES_DIR}/scripts/profiler/multi_threaded/1.csv"$'\n'
  list_of_csv_filepaths+="${SAMPLES_DIR}/scripts/profiler/multi_threaded/0.csv"
  process_csv_files "$list_of_csv_filepaths" 'full'

  assert_equals_helper 'Wrong number of threads' "$LINENO" 3 "${#full_profile[@]}"

  expected='--> foo'$'\n'
  expected+='  1.000 milliseconds'$'\n'
  expected+='  --> bar'$'\n'
  expected+='    11.000 milliseconds'$'\n'
  expected+='  <-- bar'$'\n'
  expected+='  8.000 milliseconds'$'\n'
  expected+='  --> foobar'$'\n'
  expected+='    251.000 milliseconds'$'\n'
  expected+='<---- foobar'$'\n'
  assert_equals_helper 'Wrong profile of thread 0' "$LINENO" "$expected" "${full_profile[0]}"

  expected='--> rec'$'\n'
  expected+='  .500 milliseconds'$'\n'
  expected+='  --> rec'$'\n'
  expected+='    .500 milliseconds'$'\n'
  expected+='    --> rec'$'\n'
  expected+='      1.000 milliseconds'$'\n'
  expected+='    <-- rec'$'\n'
  expected+='    2.050 milliseconds'$'\n'
  expected+='  <-- rec'$'\n'
  expected+='  2.180 milliseconds'$'\n'
  expected+='<-- rec'$'\n'
  assert_equals_helper 'Wrong profile of thread 1' "$LINENO" "$expected" "${full_profile[1]}"

  expected='--> foo'$'\n'
  expected+='  .002 milliseconds'$'\n'
  expected+='<-- foo'$'\n'
  expected+='.010 milliseconds'$'\n'
  expected+='--> bar'$'\n'
  expected+='  .200 milliseconds'$'\n'
  expected+='<-- bar'$'\n'
  expected+='.898 milliseconds'$'\n'
  expected+='--> foobar'$'\n'
  expected+='  1.111 milliseconds'$'\n'
  expected+='<-- foobar'$'\n'
  assert_equals_helper 'Wrong profile of thread 2' "$LINENO" "$expected" "${full_profile[2]}"
}

function test_display_full_profile()
{
  local list_of_csv_filepaths
  local output
  local expected

  full_profile[0]='foo'
  full_profile[1]='bar'
  full_profile[2]='foobar'

  output=$(display_full_profile)
  expected='Thread nr. 0'$'\n'
  expected+='###############'$'\n'
  expected+='foo'$'\n'
  expected+='Thread nr. 1'$'\n'
  expected+='###############'$'\n'
  expected+='bar'$'\n'
  expected+='Thread nr. 2'$'\n'
  expected+='###############'$'\n'
  expected+='foobar'
  assert_equals_helper 'Wrong profile displayed' "$LINENO" "$expected" "$output"
}

invoke_shunit