re PR libfortran/35863 ([F2003] Implement ENCODING="UTF-8")
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 16 Aug 2008 03:42:54 +0000 (03:42 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 16 Aug 2008 03:42:54 +0000 (03:42 +0000)
2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/35863
* gfortran.dg/utf8_1.f03: New test.
* gfortran.dg/utf8_2.f03: New test.

From-SVN: r139148

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/utf8_1.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/utf8_2.f03 [new file with mode: 0644]

index 2282f0f37087e8aa320ba3fc85c2a20823421bdf..b06b6a3ca3bfbef6da7cdb3b7cf07c23bf5be941 100644 (file)
@@ -1,3 +1,9 @@
+2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/35863
+       * gfortran.dg/utf8_1.f03: New test.
+       * gfortran.dg/utf8_2.f03: New test.
+
 2008-08-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * gcc.dg/pr30551-6.c: Skip for SPU.
diff --git a/gcc/testsuite/gfortran.dg/utf8_1.f03 b/gcc/testsuite/gfortran.dg/utf8_1.f03
new file mode 100644 (file)
index 0000000..6c30885
--- /dev/null
@@ -0,0 +1,31 @@
+! { dg-do run }
+! { dg-options "-fbackslash" }
+! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+program test1
+  implicit none
+  integer, parameter :: k4 = 4
+  character(kind=4, len=30) :: string1, string2
+  character(kind=1, len=30) :: string3
+  string1 = k4_"This is Greek:  \u039f\u03cd\u03c7\u03af"
+  string2 = k4_"Jerry in Japanese is:    \u30b8\u30a8\u30ea\u30fc"
+  open(10, encoding="utf-8", status="scratch")
+  write(10,'(a)') trim(string1)
+  write(10,*) string2
+  rewind(10)
+  string1 = k4_""
+  string2 = k4_""
+  string3 = "abcdefghijklmnopqrstuvwxyz"
+  read(10,'(a)') string1
+  read(10,'(a)') string2
+  if (string1 /= k4_"This is Greek:  \u039f\u03cd\u03c7\u03af") call abort
+  if (len(trim(string1)) /= 20) call abort
+  if (string2 /= k4_" Jerry in Japanese is:    \u30b8\u30a8\u30ea\u30fc")&
+  &  call abort
+  if (len(string2) /= 30) call abort
+  rewind(10)
+  read(10,'(a)') string3
+  if (string3 /= "This is Greek:  ????") call abort
+end program test1
+! The following examples require UTF-8 enabled editor to see correctly.
+! ジエリー  Sample of Japanese characters.
+! Οὐχὶ    Sample of Greek characters.
\ No newline at end of file
diff --git a/gcc/testsuite/gfortran.dg/utf8_2.f03 b/gcc/testsuite/gfortran.dg/utf8_2.f03
new file mode 100644 (file)
index 0000000..0146a2e
--- /dev/null
@@ -0,0 +1,16 @@
+! { dg-do run }
+! { dg-options "-fbackslash" }
+! Contributed by Tobias Burnus
+program test2
+  integer,parameter :: ucs4 = selected_char_kind("iso_10646")
+  character(1,ucs4),parameter :: nen=char(int(z'5e74'),ucs4), & !year
+    gatsu=char(int(z'6708'),kind=ucs4), & !month
+    nichi=char(int(z'65e5'),kind=ucs4) !day
+  character(25,ucs4) :: string
+  open(10, encoding="utf-8", status="scratch")
+  write(10,1) 2008,nen,8,gatsu,10,nichi
+1 format(i0,a,i0,a,i0,a)
+  rewind(10)
+  read(10,'(a)') string
+  if (string /= ucs4_"2008\u5e748\u670810\u65e5") call abort
+end program test2