CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
253 lines
10 KiB
Plaintext
253 lines
10 KiB
Plaintext
# Copyright 2023-2024 Free Software Foundation, Inc.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# Test GDB's limited array printing.
|
|
|
|
standard_testfile
|
|
|
|
if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
|
|
return -1
|
|
}
|
|
|
|
if {![runto_main]} {
|
|
perror "couldn't run to breakpoint"
|
|
continue
|
|
}
|
|
|
|
with_test_prefix "with standard max-value size" {
|
|
gdb_test "print large_1d_array" \
|
|
" = \\\{0, 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\\\}"
|
|
gdb_test -nonl "output large_1d_array" \
|
|
"\\\{0, 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\\\}"
|
|
gdb_test "print large_2d_array" \
|
|
" = \\\{\\\{0, 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\\\}\\\}"
|
|
gdb_test -nonl "output large_2d_array" \
|
|
"\\\{\\\{0, 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\\\}\\\}"
|
|
}
|
|
|
|
# Set the max-value-size so we can only print 51 elements.
|
|
set elements 51
|
|
set int_size [get_valueof "/d" "sizeof(large_1d_array\[0\])" "*unknown*"]
|
|
gdb_test_no_output "set max-value-size [expr $int_size * $elements]"
|
|
|
|
with_test_prefix "with reduced max-value size" {
|
|
gdb_test "print large_1d_array" \
|
|
"\r\nvalue requires $decimal bytes, which is more than max-value-size"
|
|
gdb_test "output large_1d_array" \
|
|
"\r\nvalue requires $decimal bytes, which is more than max-value-size"
|
|
gdb_test "print large_2d_array" \
|
|
"\r\nvalue requires $decimal bytes, which is more than max-value-size"
|
|
gdb_test "output large_2d_array" \
|
|
"\r\nvalue requires $decimal bytes, which is more than max-value-size"
|
|
}
|
|
|
|
gdb_test_no_output "set print elements 3"
|
|
|
|
with_test_prefix "with reduced print elements" {
|
|
gdb_test "print large_1d_array" \
|
|
" = \\\{0, 1, 2\\.\\.\\.\\\}"
|
|
gdb_test -nonl "output large_1d_array" \
|
|
"\\\{0, 1, 2\\.\\.\\.\\\}"
|
|
|
|
gdb_test "print \$" \
|
|
" = \\\{0, 1, 2\\.\\.\\.\\\}" \
|
|
"print large_1d_array from history"
|
|
gdb_test -nonl "output \$\$" \
|
|
"\\\{0, 1, 2\\.\\.\\.\\\}" \
|
|
"output large_1d_array from history"
|
|
|
|
gdb_test "print large_2d_array" \
|
|
" = \\\{\\\{0, 1, 2\\.\\.\\.\\\}, \\\{10, 11, 12\\.\\.\\.\\\},\
|
|
\\\{20, 21, 22\\.\\.\\.\\\}\\.\\.\\.\\\}"
|
|
gdb_test -nonl "output large_2d_array" \
|
|
"\\\{\\\{0, 1, 2\\.\\.\\.\\\}, \\\{10, 11, 12\\.\\.\\.\\\},\
|
|
\\\{20, 21, 22\\.\\.\\.\\\}\\.\\.\\.\\\}"
|
|
|
|
gdb_test "print \$" \
|
|
" = \\\{\\\{0, 1, 2\\.\\.\\.\\\}, \\\{10, 11, 12\\.\\.\\.\\\},\
|
|
\\\{20, 21, 22\\.\\.\\.\\\}\\.\\.\\.\\\}" \
|
|
"print large_2d_array from history"
|
|
gdb_test -nonl "output \$\$" \
|
|
"\\\{\\\{0, 1, 2\\.\\.\\.\\\}, \\\{10, 11, 12\\.\\.\\.\\\},\
|
|
\\\{20, 21, 22\\.\\.\\.\\\}\\.\\.\\.\\\}" \
|
|
"output large_2d_array from history"
|
|
}
|
|
|
|
gdb_test_no_output "set print elements $elements"
|
|
|
|
with_test_prefix "with print elements matching max-value size" {
|
|
gdb_test "print \$\$2" \
|
|
" = \\\{0, 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\\.\\.\\.\\\}" \
|
|
"print large_1d_array from history"
|
|
gdb_test -nonl "output \$\$3" \
|
|
"\\\{0, 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\\.\\.\\.\\\}" \
|
|
"output large_1d_array from history"
|
|
|
|
gdb_test "print \$\$2" \
|
|
" = \\\{\\\{0, 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(?:, <unavailable>)\{9\}\\\}(?:,\
|
|
\\\{<unavailable>(?:, <unavailable>)\{9\}\\\})\{4\}\\\}" \
|
|
"print large_2d_array from history"
|
|
gdb_test -nonl "output \$\$3" \
|
|
"\\\{\\\{0, 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(?:, <unavailable>)\{9\}\\\}(?:,\
|
|
\\\{<unavailable>(?:, <unavailable>)\{9\}\\\})\{4\}\\\}" \
|
|
"output large_2d_array from history"
|
|
}
|
|
|
|
gdb_test_no_output "set max-value-size unlimited"
|
|
gdb_test_no_output "set print elements unlimited"
|
|
gdb_test_no_output "set print repeats 3"
|
|
|
|
with_test_prefix "with unlimited print elements" {
|
|
gdb_test "print \$\$" \
|
|
" = \\\{0, 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, <unavailable> <repeats 49 times>\\\}" \
|
|
"print large_1d_array from history"
|
|
gdb_test -nonl "output \$\$2" \
|
|
"\\\{0, 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, <unavailable> <repeats 49 times>\\\}" \
|
|
"output large_1d_array from history"
|
|
|
|
gdb_test "print \$\$" \
|
|
" = \\\{\\\{0, 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, <unavailable> <repeats 9 times>\\\},\
|
|
\\\{<unavailable> <repeats 10 times>\\\}\
|
|
<repeats 4 times>\\\}" \
|
|
"print large_2d_array from history"
|
|
gdb_test -nonl "output \$\$2" \
|
|
"\\\{\\\{0, 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, <unavailable> <repeats 9 times>\\\},\
|
|
\\\{<unavailable> <repeats 10 times>\\\}\
|
|
<repeats 4 times>\\\}" \
|
|
"output large_2d_array from history"
|
|
|
|
gdb_test "print \$\[4\]" \
|
|
" = \\\{40, 41, 42, 43, 44, 45, 46, 47, 48, 49\\\}" \
|
|
"print available large_2d_array row from history"
|
|
gdb_test -nonl "output \$\$\[4\]" \
|
|
"\\\{40, 41, 42, 43, 44, 45, 46, 47, 48, 49\\\}" \
|
|
"output available large_2d_array row from history"
|
|
|
|
gdb_test "print \$\$\[5\]" \
|
|
" = \\\{50, <unavailable> <repeats 9 times>\\\}" \
|
|
"print partially available large_2d_array row from history"
|
|
gdb_test -nonl "output \$\$2\[5\]" \
|
|
"\\\{50, <unavailable> <repeats 9 times>\\\}" \
|
|
"output partially available large_2d_array row from history"
|
|
|
|
gdb_test "print \$\$2\[6\]" \
|
|
" = <unavailable>" \
|
|
"print unavailable large_2d_array row from history"
|
|
gdb_test -nonl "output \$\$3\[6\]" \
|
|
"<unavailable>" \
|
|
"output unavailable large_2d_array row from history"
|
|
|
|
gdb_test "print \$\$3\[5\]\[0\]" \
|
|
" = 50" \
|
|
"print available large_2d_array element from history"
|
|
gdb_test -nonl "output \$\$4\[5\]\[0\]" \
|
|
"50" \
|
|
"output available large_2d_array element from history"
|
|
|
|
gdb_test "print \$\$4\[5\]\[1\]" \
|
|
" = <unavailable>" \
|
|
"print unavailable large_2d_array element from history"
|
|
gdb_test -nonl "output \$\$5\[5\]\[1\]" \
|
|
"<unavailable>" \
|
|
"output unavailable large_2d_array element from history"
|
|
|
|
gdb_test "print \$\$5\[5\]\[0\] + \$\$5\[5\]\[1\]" \
|
|
"value is not available" \
|
|
"print expression referring unavailable element from history"
|
|
gdb_test "output \$\$5\[5\]\[0\] + \$\$5\[5\]\[1\]" \
|
|
"value is not available" \
|
|
"output expression referring unavailable element from history"
|
|
}
|
|
|
|
gdb_test_no_output "set max-value-size 10000"
|
|
gdb_test_no_output "set print elements 200"
|
|
|
|
gdb_test "print large_empty_string" \
|
|
" = \\\{0 '\\\\000' <repeats 10000 times>, <unavailable> <repeats 90000 times>\\\}" \
|
|
"print large empty string which is not fully available"
|
|
gdb_test -nonl "output large_empty_string" \
|
|
"\\\{0 '\\\\000' <repeats 10000 times>, <unavailable> <repeats 90000 times>\\\}" \
|
|
"output large empty string which is not fully available"
|