diff options
Diffstat (limited to 'test/lisp/cedet/semantic/format-resources')
-rw-r--r-- | test/lisp/cedet/semantic/format-resources/test-fmt.cpp | 108 | ||||
-rw-r--r-- | test/lisp/cedet/semantic/format-resources/test-fmt.el | 65 |
2 files changed, 173 insertions, 0 deletions
diff --git a/test/lisp/cedet/semantic/format-resources/test-fmt.cpp b/test/lisp/cedet/semantic/format-resources/test-fmt.cpp new file mode 100644 index 00000000000..39843a22194 --- /dev/null +++ b/test/lisp/cedet/semantic/format-resources/test-fmt.cpp @@ -0,0 +1,108 @@ +/** test-fmt.cpp --- Signatures, and format answers for testing + * + * Copyright (C) 2012, 2016, 2019-2022 Free Software Foundation, Inc. + * + * Author: Eric M. Ludlam <zappo@gnu.org> + * + * This file is part of GNU Emacs. + * + * GNU Emacs is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GNU Emacs is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + */ + +/* + * About semantic-fmt-utest : + * + * These tests validate two features: + * 1) The C++ parser can parse the different signatures + * 2) The semantic-tag-format-* functions can recreate them. + * + */ + +void basic_fcn() { } +/* + * ## name "basic_fcn" + * ## abbreviate "basic_fcn()" + * ## prototype "void basic_fcn ()" + * ## uml-prototype "basic_fcn () : void" + */ + +int twoargs_fcn(int a, char b) { } +/* + * ## name "twoargs_fcn" + * ## abbreviate "twoargs_fcn()" + * ## prototype "int twoargs_fcn (int a,char b)" + * ## uml-prototype "twoargs_fcn (a : int,b : char) : int" + */ + +struct moose { + int field1; + char field2; +}; +/* + * ## name "moose" + * ## abbreviate "moose{}" + * ## prototype "struct moose {}" + * ## uml-prototype "moose{} : struct" + */ + +struct moose struct_fcn ( struct moose in, char *out); +/* + * ## name "struct_fcn" + * ## abbreviate "struct_fcn()" + * ## prototype "struct moose struct_fcn (struct moose in,char* out)" + * ## uml-prototype "struct_fcn (in : struct moose,out : char*) : struct moose" + */ + +struct moose *var_one = NULL; +/* + * ## name "var_one" + * ## summarize "Variables: struct moose* var_one[=NULL]" + * ## prototype "struct moose* var_one[=NULL]" + * ## uml-prototype "var_one : struct moose*" + */ + +const int var_two = 1; +/* + * ## name "var_two" + * ## summarize "Variables: const int var_two[=1]" + * ## prototype "const int var_two[=1]" + * ## uml-prototype "var_two : int" + */ + +namespace NS { + enum TestEnum {a,b}; +} +/* + * ## name "NS" + * ## summarize "Types: namespace NS {}" + * ## prototype "namespace NS {}" + * ## uml-prototype "NS{} : namespace" + */ + + +// void func_ns_arg(NS::TestEnum v = NS::a); <<--- TODO - bring FIX from CEDET on SF +/* + * # # name "func_ns_arg" + * # # summarize "Functions: void func_ns_arg (NS::TestEnum v[=NS::a])" + * # # prototype "void func_ns_arg (NS::TestEnum v[=NS::a])" + * # # uml-prototype "func_ns_arg (v : NS::TestEnum) : void" + */ + +//int const var_three = 1; +/* + * # # name "var_three" + * # # summarize "Variables: int const var_three" <-- this fails + * # # prototype "int const var_three" <-- this fails + * # # uml-prototype "var_three : int" + */ diff --git a/test/lisp/cedet/semantic/format-resources/test-fmt.el b/test/lisp/cedet/semantic/format-resources/test-fmt.el new file mode 100644 index 00000000000..5fcb8ef3c36 --- /dev/null +++ b/test/lisp/cedet/semantic/format-resources/test-fmt.el @@ -0,0 +1,65 @@ +;;; test-fmt.el --- test semantic tag formatting -*- lexical-binding: t -*- + +;; Copyright (C) 2012-2022 Free Software Foundation, Inc. + +;; Author: Eric M. Ludlam <zappo@gnu.org> + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: +;; +;; + +;;; Code: +(require 'semantic) +;; +;; ## name "semantic" +;; ## abbreviate "semantic<>" +;; ## summarize "Requires: semantic" + +(defun test-fmt-1 (a) + "Function with 1 arg.") +;; +;; ## name "test-fmt-1" +;; ## abbreviate "(test-fmt-1)" +;; ## summarize "Defuns: (test-fmt-1 a)" +;; ## short-doc "Function with 1 arg." +;; ## uml-prototype "(test-fmt-1 a)" <-- That is probably wrong. + +(defvar test-fmt-var nil + "Variable test.") +;; +;; ## name "test-fmt-var" +;; ## abbreviate "test-fmt-var" +;; ## summarize "Variables: test-fmt-var" +;; ## short-doc "Variable test." +;; ## uml-prototype "test-fmt-var" + +(defclass test-fmt-class () + ((slot1 :initarg :slot1)) + "Class for testing.") +;; +;; ## name "test-fmt-class" +;; ## abbreviate "test-fmt-class{}" +;; ## summarize "Types: class test-fmt-class {}" +;; ## short-doc "Class for testing." +;; ## uml-prototype "class test-fmt-class {}" + + + +(provide 'test-fmt) + +;;; test-fmt.el ends here |