Forráskód Böngészése

Add some very basic tests for compile time set range checks

Pierre Muller 2 hónapja
szülő
commit
0cac40d2b0
4 módosított fájl, 71 hozzáadás és 0 törlés
  1. 8 0
      tests/webtbs/tw41261.pp
  2. 18 0
      tests/webtbs/tw41261b.pp
  3. 25 0
      tests/webtbs/tw41261c.pp
  4. 20 0
      tests/webtbs/tw41261d.pp

+ 8 - 0
tests/webtbs/tw41261.pp

@@ -0,0 +1,8 @@
+program Project1;
+{$R+}
+const
+  INTCHARS = ['0' .. '9'];
+  HEXCHARS = ['a' .. 'f', 'A' .. 'F'] + INTCHARS;
+begin
+end.
+

+ 18 - 0
tests/webtbs/tw41261b.pp

@@ -0,0 +1,18 @@
+program Project1;
+{$R+}
+const
+  INTCHARS = ['0' .. '9'];
+  HEXCHARS = ['a' .. 'f', 'A' .. 'F'] + INTCHARS;
+type
+  digit_set = set of 0 .. 9;
+  digit_char_set = set of '0' .. '9';
+
+var
+  ds : digit_set;
+  dcs : digit_char_set;
+begin
+  ds:=[0,3,7];
+  dcs:=['1'..'5'];
+  dcs:= dcs + ['a'..'d'];
+end.
+

+ 25 - 0
tests/webtbs/tw41261c.pp

@@ -0,0 +1,25 @@
+{%FAIL}
+program Project1;
+{$R+}
+const
+  INTCHARS = ['0' .. '9'];
+  HEXCHARS = ['a' .. 'f', 'A' .. 'F'] + INTCHARS;
+type
+  digit_set = set of 0 .. 9;
+  digit_char_set = set of '0' .. '9';
+ char_set = set of char;
+
+var
+  ds : digit_set;
+  dcs : digit_char_set;
+  cs : char_set;
+begin
+  ds:=[0,3,7];
+  cs:=['1'..'5'];
+  cs:=['8'..'h'];
+  cs:=['c'..'z'];
+  dcs:=['1'..'5'];
+  dcs:=['8'..'h'];
+  dcs:=['c'..'z'];
+end.
+

+ 20 - 0
tests/webtbs/tw41261d.pp

@@ -0,0 +1,20 @@
+program Project1;
+{$R+}
+const
+  INTCHARS = ['0' .. '9'];
+  LETTERCHARS = ['a' .. 'f', 'A' .. 'F'];
+  HEXCHARS = LETTERCHARS;
+
+var
+  c : char;
+begin
+  c:='g';
+  if (c in INTCHARS + LETTERCHARS) then
+    begin
+      writeln('Error g is not a valid hex char');
+      halt(1);
+    end
+  else
+    writeln('OK: g is not a hex char');
+end.
+