From a15cf65c44d5c224169c32ef5495b68c758134b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 18 May 2014 16:08:14 +0200 Subject: Imported Upstream version 3.3.0.2 --- .../tests/indentation/cxx/driver.cxx | 105 +++++++++++++++++++++ libbackend-elements/tests/indentation/cxx/makefile | 57 +++++++++++ .../tests/indentation/cxx/output.cxx | 75 +++++++++++++++ libbackend-elements/tests/indentation/makefile | 18 ++++ 4 files changed, 255 insertions(+) create mode 100644 libbackend-elements/tests/indentation/cxx/driver.cxx create mode 100644 libbackend-elements/tests/indentation/cxx/makefile create mode 100644 libbackend-elements/tests/indentation/cxx/output.cxx create mode 100644 libbackend-elements/tests/indentation/makefile (limited to 'libbackend-elements/tests/indentation') diff --git a/libbackend-elements/tests/indentation/cxx/driver.cxx b/libbackend-elements/tests/indentation/cxx/driver.cxx new file mode 100644 index 0000000..adfc2fc --- /dev/null +++ b/libbackend-elements/tests/indentation/cxx/driver.cxx @@ -0,0 +1,105 @@ +// file : tests/indentation/cxx/driver.cxx +// author : Boris Kolpackov +// copyright : Copyright (c) 2006-2010 Boris Kolpackov +// license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#include + +#include + +#include +#include + +using namespace Cult::Types; +using namespace BackendElements::Indentation; + +using std::cout; +using std::endl; + +Int +main () +{ + std::ostream& os (cout); + Clip clip (os); + + os << "if (true)" + << "{" + << "// Hello there" << endl + << "//" << endl + << "a ();" + << "}" + << "else" + << "{" + << "b ();" + << "}"; + + os << "if (false)" + << "{" + << "if (true)" + << "{" + << "// test" << endl + << "}" + << "else" + << "{" + << "// test" << endl + << "b ();" + << "}" + << "}"; + + os << "namespace a" + << "{" + << "void f ();" + << "}" + << "#if defined(__HP_aCC) && __HP_aCC <= 39999" << endl + << "#include " << endl + << "#endif" << endl + << endl + << "namespace b" + << "{" + << "void f ();" + << "}"; + + // Test do-while handling. + // + os << "do" << endl + << "f ();" + << "while (false);" + << endl; + + os << "do" + << "{" + << "f ();" + << "}" + << "while (false);" + << endl; + + os << "do" + << "{" + << "if (f ())" + << "{" + << "g ();" + << "}" + << "}" + << "while (false);" + << endl; + + os << "do" + << "{" + << "do" << endl + << "f ();" + << "while (false);" + << "}" + << "while (false);" + << endl; + + os << "do" + << "{" + << "do" + << "{" + << "f ();" + << "}" + << "while (false);" + << "}" + << "while (false);" + << endl; +} diff --git a/libbackend-elements/tests/indentation/cxx/makefile b/libbackend-elements/tests/indentation/cxx/makefile new file mode 100644 index 0000000..ff2e15d --- /dev/null +++ b/libbackend-elements/tests/indentation/cxx/makefile @@ -0,0 +1,57 @@ +# file : tests/indentation/cxx/makefile +# author : Boris Kolpackov +# copyright : Copyright (c) 2006-2010 Boris Kolpackov +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make + +cxx_tun := driver.cxx +cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) +cxx_od := $(cxx_obj:.o=.o.d) + +#be.l := $(out_root)/backend-elements/backend-elements.l +be.l.cpp-options := $(out_root)/backend-elements/backend-elements.l.cpp-options + +driver := $(out_base)/driver +test := $(out_base)/.test +clean := $(out_base)/.clean + + +# Build. +# +$(driver): $(cxx_obj) #$(be.l) + +$(cxx_obj) $(cxx_od): $(be.l.cpp-options) + +$(call include-dep,$(cxx_od)) + + +# Convenience alias for default target. +# +$(out_base)/: $(driver) + + +# Test. +# +$(test): driver := $(driver) +$(test): $(driver) $(src_base)/output.cxx + $(driver) | diff -u $(src_base)/output.cxx - + + +# Clean. +# +$(clean): $(driver).o.clean \ + $(addsuffix .cxx.clean,$(cxx_obj)) \ + $(addsuffix .cxx.clean,$(cxx_od)) + + +# How to. +# +$(call include,$(bld_root)/cxx/o-e.make) +$(call include,$(bld_root)/cxx/cxx-o.make) +$(call include,$(bld_root)/cxx/cxx-d.make) + + +# Dependencies. +# +$(call import,$(src_root)/backend-elements/makefile) diff --git a/libbackend-elements/tests/indentation/cxx/output.cxx b/libbackend-elements/tests/indentation/cxx/output.cxx new file mode 100644 index 0000000..1a22bc7 --- /dev/null +++ b/libbackend-elements/tests/indentation/cxx/output.cxx @@ -0,0 +1,75 @@ +if (true) +{ + // Hello there + // + a (); +} +else +{ + b (); +} + +if (false) +{ + if (true) + { + // test + } + else + { + // test + b (); + } +} + +namespace a +{ + void f (); +} + +#if defined(__HP_aCC) && __HP_aCC <= 39999 +#include +#endif + +namespace b +{ + void f (); +} + +do + f (); +while (false); + +do +{ + f (); +} +while (false); + +do +{ + if (f ()) + { + g (); + } +} +while (false); + +do +{ + do + f (); + while (false); +} +while (false); + +do +{ + do + { + f (); + } + while (false); +} +while (false); + diff --git a/libbackend-elements/tests/indentation/makefile b/libbackend-elements/tests/indentation/makefile new file mode 100644 index 0000000..debbeec --- /dev/null +++ b/libbackend-elements/tests/indentation/makefile @@ -0,0 +1,18 @@ +# file : tests/indentation/makefile +# author : Boris Kolpackov +# copyright : Copyright (c) 2006-2010 Boris Kolpackov +# license : GNU GPL v2; see accompanying LICENSE file + +include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make + +tests := cxx + +default := $(out_base)/ +test := $(out_base)/.test +clean := $(out_base)/.clean + +$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests))) +$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests))) +$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests))) + +$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile)) -- cgit v1.2.3