1# 2# SPDX-License-Identifier: BSD-2-Clause 3# 4# Copyright (c) 2023 Christos Margiolis <christos@FreeBSD.org> 5# 6 7get_months_fmt() 8{ 9 rm -f in 10 for i in $(seq 12 1); do 11 printf "2000-%02d-01\n" ${i} | xargs -I{} \ 12 date -jf "%Y-%m-%d" {} "${1}" >>in 13 done 14} 15 16atf_test_case monthsort_english 17monthsort_english_head() 18{ 19 atf_set "descr" "Test the -M flag with English months" 20} 21monthsort_english_body() 22{ 23 export LC_TIME="en_US.UTF-8" 24 25 cat >expout <<EOF 26January 27February 28March 29April 30May 31June 32July 33August 34September 35October 36November 37December 38EOF 39 40 # No need to test the rest of the formats (%b and %OB) as %b is a 41 # substring of %B and %OB is the same as %B. 42 get_months_fmt '+%B' 43 atf_check -o file:expout sort -M in 44} 45 46atf_test_case monthsort_all_formats_greek 47monthsort_all_formats_greek_head() 48{ 49 atf_set "descr" "Test the -M flag with all possible Greek month formats" 50} 51monthsort_all_formats_greek_body() 52{ 53 # Test with the Greek locale, since, unlike English, the 54 # abbreviation/full-name and standalone formats are different. 55 export LC_TIME="el_GR.UTF-8" 56 57 # Abbreviation format (e.g Jan, ������) 58 cat >expout <<EOF 59?????? 60?????? 61?????? 62?????? 63?????? 64???????? 65???????? 66?????? 67?????? 68?????? 69?????? 70?????? 71EOF 72 get_months_fmt '+%b' 73 atf_check -o file:expout sort -M in 74 75 # Full-name format (e.g January, ��������������������) 76 cat >expout <<EOF 77???????????????????? 78?????????????????????? 79?????????????? 80???????????????? 81?????????? 82?????????????? 83?????????????? 84?????????????????? 85?????????????????????? 86?????????????????? 87?????????????????? 88???????????????????? 89EOF 90 get_months_fmt '+%B' 91 atf_check -o file:expout sort -M in 92 93 # Standalone format (e.g January, ��������������������) 94 cat >expout <<EOF 95???????????????????? 96?????????????????????? 97?????????????? 98???????????????? 99?????????? 100?????????????? 101?????????????? 102?????????????????? 103?????????????????????? 104?????????????????? 105?????????????????? 106???????????????????? 107EOF 108 get_months_fmt '+%OB' 109 atf_check -o file:expout sort -M in 110} 111 112atf_test_case monthsort_mixed_formats_greek 113monthsort_mixed_formats_greek_head() 114{ 115 atf_set "descr" "Test the -M flag with mixed Greek month formats" 116} 117monthsort_mixed_formats_greek_body() 118{ 119 export LC_TIME="el_GR.UTF-8" 120 121 cat >in <<EOF 122???????????????????? 123?????????????????? 124?????? 125?????? 126?????? 127?????????????? 128?????????????? 129?????????? 130???????????????? 131?????????????? 132?????????????????????? 133???????????????????? 134EOF 135 136 cat >expout <<EOF 137???????????????????? 138?????????????????????? 139?????????????? 140???????????????? 141?????????? 142?????????????? 143?????????????? 144?????? 145?????? 146?????? 147?????????????????? 148???????????????????? 149EOF 150 151 atf_check -o file:expout sort -M in 152} 153 154atf_init_test_cases() 155{ 156 atf_add_test_case monthsort_english 157 atf_add_test_case monthsort_all_formats_greek 158 atf_add_test_case monthsort_mixed_formats_greek 159} 160