From 8b34e11da36947a064d53dc7ce367069abd69bbf Mon Sep 17 00:00:00 2001 From: pierre Date: Sat, 26 Dec 2020 17:08:56 +0000 Subject: [PATCH] Add code to test Linux version, try statx syscall only if version is >= to 4.11 git-svn-id: trunk@47850 - --- tests/test/units/linux/tstatx.pp | 43 +++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/tests/test/units/linux/tstatx.pp b/tests/test/units/linux/tstatx.pp index b082959ae8..360b11a356 100644 --- a/tests/test/units/linux/tstatx.pp +++ b/tests/test/units/linux/tstatx.pp @@ -3,11 +3,52 @@ uses ctypes,baseunix,linux; var + un : utsname; mystatx : statx; res : cint; f : text; - + st,major,minor : string; + i,p,e : longint; + err : word; + major_release, minor_release : longint; begin + fpuname(un); + st:=un.release; + for i:=1 to UTSNAME_LENGTH do + if st[i]='.' then + begin + p:=i; + major:=system.copy(st,1,p-1); + system.val(major,major_release,err); + if err<>0 then + begin + writeln('Unable to parse first part of linux version ',st,'(',major,') correctly'); + halt(2); + end; + break; + end; + + for i:=p+1 to UTSNAME_LENGTH do + if st[i]='.' then + begin + e:=i; + minor:=system.copy(st,p+1,e-p-1); + system.val(minor,minor_release,err); + if err<>0 then + begin + writeln('Unable to second part of parse linux version ',st,'i(',minor,') correctly'); + halt(2); + end; + break; + end; + if (major_release<4) or (minor_release<11) then + begin + writeln('This version of Linux: ',st,' does not have fstatx syscall'); + halt(0); + end + else + writeln('This linux version ',st,' should support statx syscall'); + assign(f,'test.txt'); rewrite(f); write(f,'ccccc');