emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] scratch/merge-cedet-tests 42516a8 254/316: Added cpproot t


From: Edward John Steere
Subject: [Emacs-diffs] scratch/merge-cedet-tests 42516a8 254/316: Added cpproot tests
Date: Fri, 27 Jan 2017 20:03:44 +0000 (UTC)

branch: scratch/merge-cedet-tests
commit 42516a8f66bbfb50b8d59e1d0f49a12cc9d0c0bc
Author: Eric Ludlam <address@hidden>
Commit: Edward John Steere <address@hidden>

    Added cpproot tests
    
    * test/manual/cedet/cit-cpproot.el: (cit-integ-cpproot-sys-subdir):
     New.  (cit-integ-cpproot-sys-srcdir):
     New. (cit-src-cpproot-main-tags): Added 3 new
     tags. (cit-cpproot-depfiles): New. (cit-ede-cpproot-test): Make copy
     work in emacs 23&24. Add new include dirs Add more spp files. Check
     all includes that they are found in the expected directories.
---
 test/manual/cedet/cit-cpproot.el |   57 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 54 insertions(+), 3 deletions(-)

diff --git a/test/manual/cedet/cit-cpproot.el b/test/manual/cedet/cit-cpproot.el
index 074dfbd..9939f12 100644
--- a/test/manual/cedet/cit-cpproot.el
+++ b/test/manual/cedet/cit-cpproot.el
@@ -1,6 +1,6 @@
 ;;; cit-cpproot.el --- Test ede/cpp-root project features
 ;;
-;; Copyright (C) 2012 Eric M. Ludlam
+;; Copyright (C) 2012, 2013 Eric M. Ludlam
 ;;
 ;; Author: Eric M. Ludlam <address@hidden>
 ;;
@@ -40,15 +40,29 @@
 (defvar cit-integ-cpproot-subdir "integ_src/cpproot/"
   "Directory of files to copy into the tmp project dir.")
 
+(defvar cit-integ-cpproot-sys-subdir "integ_src/fauxsyslib/"
+  "Directory of files to copy into the tmp project dir.")
+
 (defvar cit-integ-cpproot-srcdir
   (expand-file-name
    cit-integ-cpproot-subdir
    (file-name-directory (locate-library "cit-cpproot")))
   "The source directory dor the CPP root sources.")
 
+(defvar cit-integ-cpproot-sys-subdir "integ_src/fauxsyslib/"
+  "Directory of files to copy into the tmp project dir.")
+
+(defvar cit-integ-cpproot-sys-srcdir
+  (expand-file-name
+   cit-integ-cpproot-sys-subdir
+   (file-name-directory (locate-library "cit-cpproot")))
+  "The source directory dor the CPP root sources.")
+
 (defvar cit-src-cpproot-main-tags
   (list
+   (semantic-tag-new-include "cpprootsys.h" t)
    (semantic-tag-new-include "sppmacros.h" nil)
+   (semantic-tag-new-include "projincmacros.h" nil)
    (semantic-tag-new-include "test.h" nil)
    (semantic-tag-new-function
     "main" "int"
@@ -60,10 +74,17 @@
    (semantic-tag-new-function "feature1" "int" nil)
    (semantic-tag-new-function "feature2" "int" nil)
    (semantic-tag-new-function "feature3" "int" nil)
+   (semantic-tag-new-function "projmacro_a" "char" nil)
    (semantic-tag-new-function "generic_feature" "int" nil)
    )
   "List of tags we need to be able to to find in main.cpp")
 
+(defvar cit-cpproot-depfiles
+  (list (expand-file-name "cpprootsys.h" cit-integ-cpproot-sys-srcdir)
+       (expand-file-name "sppmacros.h" cit-integ-target-cpproot)
+       (expand-file-name "projinc/projincmacros.h" cit-integ-target-cpproot)
+       (expand-file-name "test.h" cit-integ-target-cpproot))
+  "List of expected path names to include files found in main.cpp")
 
 (defun cit-ede-cpproot-test ()
   "Test EDE cpproot based Project."
@@ -72,23 +93,53 @@
   (cit-make-dir cit-integ-target-cpproot)
 
   ;; Copy source files into the cpproot directory
-  (copy-directory cit-integ-cpproot-srcdir cit-integ-target-cpproot t t)
+  (condition-case nil
+      ;; Emacs 24.2
+       (copy-directory (file-name-as-directory cit-integ-cpproot-srcdir) 
cit-integ-target-cpproot t t t)
+
+    ;; Emacs 23
+    (error
+     (copy-directory (file-name-as-directory cit-integ-cpproot-srcdir) 
cit-integ-target-cpproot t t)))
 
   ;; Create the ede-cpp-root-project class directly.
   (ede-cpp-root-project
    "TESTCPPROOT"
    :file (expand-file-name "main.cpp" cit-integ-target-cpproot)
+   :system-include-path (list cit-integ-cpproot-sys-srcdir)
+   :include-path '( "/projinc" )
    :spp-table '( ("FEATURE3" . "1")
                 ("RANDOM" . "random") )
-   :spp-files '( "sppmacros.h" ))
+   ;; Note: projincmacros is in the include path and will be found there.
+   :spp-files '( "sppmacros.h" "projincmacros.h"))
 
   ;; Load up main
   (find-file (cit-file-cpproot "main.cpp"))
 
+  ;; Did the parse work at all???
+  (when (not (semantic-fetch-tags))
+    (semantic-c-describe-environment)
+    (error "main.cpp failed to parse."))
+
   ;; Validate found tags based on project provided macros.
   (cit-srecode-verify-tags (semantic-fetch-tags)
                           cit-src-cpproot-main-tags)
 
+  ;; Test out the include paths by checking the discovered file names for the 
includes.
+  (let ((itag (semantic-find-tags-included (current-buffer)))
+       (expected cit-cpproot-depfiles))
+    (while (and itag expected)
+
+      (when (not (string= (car expected)
+                         (semantic-dependency-tag-file (car itag))))
+       (error "Tag: %s found at %s, expected %s"
+              (semantic-format-tag-name (car itag))
+              (semantic-dependency-tag-file (car itag))
+              (car expected)))
+
+      (setq itag (cdr itag)
+           expected (cdr expected)))
+    (when (or itag expected)
+      (error "Number of found include tags does not match number of expected 
tags.")))
   )
 
 



reply via email to

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