diff options
| author | Jörg Frings-Fürst <jff@merkur> | 2014-05-18 16:08:14 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <jff@merkur> | 2014-05-18 16:08:14 +0200 | 
| commit | a15cf65c44d5c224169c32ef5495b68c758134b7 (patch) | |
| tree | 3419f58fc8e1b315ba8171910ee044c5d467c162 /libbackend-elements/tests | |
Imported Upstream version 3.3.0.2upstream/3.3.0.2
Diffstat (limited to 'libbackend-elements/tests')
| -rw-r--r-- | libbackend-elements/tests/indentation/cxx/driver.cxx | 105 | ||||
| -rw-r--r-- | libbackend-elements/tests/indentation/cxx/makefile | 57 | ||||
| -rw-r--r-- | libbackend-elements/tests/indentation/cxx/output.cxx | 75 | ||||
| -rw-r--r-- | libbackend-elements/tests/indentation/makefile | 18 | ||||
| -rw-r--r-- | libbackend-elements/tests/makefile | 18 | 
5 files changed, 273 insertions, 0 deletions
| 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 <boris@kolpackov.net> +// copyright : Copyright (c) 2006-2010 Boris Kolpackov +// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#include <iostream> + +#include <cult/types.hxx> + +#include <backend-elements/indentation/cxx.hxx> +#include <backend-elements/indentation/clip.hxx> + +using namespace Cult::Types; +using namespace BackendElements::Indentation; + +using std::cout; +using std::endl; + +Int +main () +{ +  std::ostream& os (cout); +  Clip<CXX, Char> 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 <foo.h>" << 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 <boris@kolpackov.net> +# 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 <foo.h> +#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 <boris@kolpackov.net> +# 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)) diff --git a/libbackend-elements/tests/makefile b/libbackend-elements/tests/makefile new file mode 100644 index 0000000..2e14098 --- /dev/null +++ b/libbackend-elements/tests/makefile @@ -0,0 +1,18 @@ +# file      : tests/makefile +# author    : Boris Kolpackov <boris@kolpackov.net> +# copyright : Copyright (c) 2006-2010 Boris Kolpackov +# license   : GNU GPL v2; see accompanying LICENSE file + +include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make + +tests := indentation + +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)) | 
