emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/phps-mode 2a9fb96 16/96: Added more tests for parser


From: Christian Johansson
Subject: [elpa] externals/phps-mode 2a9fb96 16/96: Added more tests for parser
Date: Fri, 29 Oct 2021 11:14:33 -0400 (EDT)

branch: externals/phps-mode
commit 2a9fb965c75eeccd5211a97010f1647cf42b3dac
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>

    Added more tests for parser
---
 test/phps-mode-test-parser.el | 46 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git a/test/phps-mode-test-parser.el b/test/phps-mode-test-parser.el
index 0f55e56..7db67aa 100644
--- a/test/phps-mode-test-parser.el
+++ b/test/phps-mode-test-parser.el
@@ -67,9 +67,9 @@
 
     (message "Passed %s" name)))
 
-(defun phps-mode-test-parser()
+(defun phps-mode-test-parser-boundaries ()
   "Run test for lexer."
-  (message "-- Running all tests for parser... --\n")
+  (message "-- Running tests for parser boundaries... --\n")
 
   (phps-mode-test-parser--buffer-contents
    "<?php echo 'hello';"
@@ -111,6 +111,48 @@
        '(80 459 466 411 333 332 154 102 79)
        (phps-mode-parser-parse)))))
 
+  (phps-mode-test-parser--buffer-contents
+   "<?php\necho 'blaha'\necho 'here';"
+   "Basic echo test 4 with invalid code"
+   (lambda()
+     (should-error
+      (phps-mode-parser-parse))))
+
+  (phps-mode-test-parser--buffer-contents
+   "<?php\necho 'blaha'"
+   "Basic echo test 5 with invalid code"
+   (lambda()
+     (should-error
+      (phps-mode-parser-parse))))
+
+  (phps-mode-test-parser--buffer-contents
+   "<? echo '<!DOCTYPE html>'; ?><html><head><?php echo 'My Title'; 
?><body></html>"
+   "Advanced echo test with 2 echo sections"
+   (lambda()
+     (let ((parse (phps-mode-parser-parse)))
+       (message "Left-to-right with left-most derivation in reverse: %S" parse)
+       (dolist (production-number (reverse parse))
+         (let ((production
+                (phps-mode-parser--get-grammar-production-by-number
+                 production-number)))
+           (message
+            "%d: %S -> %S"
+            production-number
+            (car (car production))
+            (car (car (cdr production))))))
+       (message "\n")
+       (should
+        (equal
+         '(80 459 466 411 333 332 154 102 79 155 102 79 459 466 411 333 332 
154 102 79 155 102 79)
+         parse)))))
+
+  (message "\n-- Ran tests for parser boundaries. --"))
+
+(defun phps-mode-test-parser ()
+  "Run test for lexer."
+  (message "-- Running all tests for parser... --\n")
+
+  (phps-mode-test-parser-boundaries)
 
   (message "\n-- Ran all tests for parser. --"))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]