--- /dev/null
+# Copyright (C) 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 GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# This file was written by Gaius Mulley (gaiusmod2@gmail.com)
+# for GNU Modula-2.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+# load support procs
+load_lib gm2-torture.exp
+
+gm2_init_pim "${srcdir}/gm2/cslling-c/libc/run/pass"
+
+foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $testcase] then {
+ continue
+ }
+
+ gm2-torture-execute $testcase "" "pass"
+}
--- /dev/null
+MODULE testlibcstr ;
+
+FROM SYSTEM IMPORT ADDRESS, ADR ;
+FROM Storage IMPORT ALLOCATE, DEALLOCATE ;
+FROM libc IMPORT strtod, atof, printf, exit, snprintf ;
+FROM DynamicStrings IMPORT String,
+ InitString, InitStringCharStar, Equal, Slice,
+ KillString ;
+
+(*
+ runtest -
+*)
+
+PROCEDURE runtest ;
+CONST
+ BufSpace = 100 ;
+VAR
+ s: String ;
+ r: REAL ;
+ a: ADDRESS ;
+BEGIN
+ r := atof (ADR ("3.14159")) ;
+ ALLOCATE (a, BufSpace) ;
+ snprintf (a, BufSpace, "%f", r) ;
+ s := InitStringCharStar (a) ;
+ IF NOT Equal (InitString ("3.14159"), Slice (s, 0, 7))
+ THEN
+ printf ("failed to convert 3.14159 to a REAL or string\n") ;
+ exit (1)
+ END ;
+ DEALLOCATE (a, BufSpace) ;
+ s := KillString (s)
+END runtest ;
+
+
+BEGIN
+ runtest ;
+ printf ("all tests passed!\n")
+END testlibcstr.