diff options
Diffstat (limited to 'libcutl/tests/shared-ptr')
| -rw-r--r-- | libcutl/tests/shared-ptr/driver.cxx | 185 | ||||
| -rw-r--r-- | libcutl/tests/shared-ptr/makefile | 69 | 
2 files changed, 0 insertions, 254 deletions
| diff --git a/libcutl/tests/shared-ptr/driver.cxx b/libcutl/tests/shared-ptr/driver.cxx deleted file mode 100644 index 3e763a0..0000000 --- a/libcutl/tests/shared-ptr/driver.cxx +++ /dev/null @@ -1,185 +0,0 @@ -// file      : tests/shared-ptr/driver.cxx -// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC -// license   : MIT; see accompanying LICENSE file - -#include <string> -#include <cassert> - -#include <cutl/shared-ptr.hxx> - -using namespace cutl; - -struct type -{ -  type (int x, char const* y) : x_ (x), y_ (y) {} - -  int x_; -  std::string y_; -}; - -struct base1 -{ -  virtual -  ~base1 () {} -  base1 (int x) : x_ (x) {} - -  int x_; -}; - -struct base2 -{ -  virtual -  ~base2 () {} -  base2 (char const* y) : y_ (y) {} - -  std::string y_; -}; - -struct derived: base1, base2 -{ -  derived (int x, char const* y) : base1 (x), base2 (y) {} -}; - -struct shared_type: shared_base -{ -  shared_type (int x, char const* y) -      : x_ (x), y_ (y) -  { -    assert (ref_count (this) == 1); -  } - -  int x_; -  std::string y_; -}; - -int -main () -{ -  // -  // inc_ref, dec_ref, ref_count -  // - -  // Non-polymorphic type. -  // -  { -    type* x (new (shared) type (5, "foo")); -    assert (ref_count (x) == 1); -    inc_ref (x); -    assert (ref_count (x) == 2); -    dec_ref (x); -    assert (ref_count (x) == 1); -    dec_ref (x); -  } - -  // Polymorphic type. -  // -  { -    base2* x (new (shared) derived (5, "foo")); -    assert (ref_count (x) == 1); -    inc_ref (x); -    assert (ref_count (x) == 2); -    dec_ref (x); -    assert (ref_count (x) == 1); -    dec_ref (x); -  } - -  // Shared type. -  // -  { -    shared_type* x (new (shared) shared_type (5, "foo")); -    assert (ref_count (x) == 1); -    inc_ref (x); -    assert (ref_count (x) == 2); -    dec_ref (x); -    assert (ref_count (x) == 1); -    dec_ref (x); -  } - -  // Error handling (this theoretically can segfault). -  // -  { -    type* x (new type (5, "foo")); - -    try -    { -      inc_ref (x); -      assert (false); -    } -    catch (not_shared const&) -    { -    } - -    delete x; -  } - -  // -  // shared_ptr -  // - -  // Non-polymorphic type. -  // -  { -    shared_ptr<type> x (new (shared) type (5, "foo")); -    assert (x.count () == 1); -    assert (x); -    assert (x->x_ == 5); -    assert ((*x).y_ == "foo"); -    { -      shared_ptr<type> y (x); -      assert (y.count () == 2); -    } -    { -      shared_ptr<type> y; -      y = x; -      assert (y.count () == 2); -    } -    assert (x.count () == 1); -    shared_ptr<type> y (x.release ()); -    assert (y.count () == 1); -  } - -  // Polymorphic type. -  // -  { -    shared_ptr<derived> x (new (shared) derived (5, "foo")); -    assert (x.count () == 1); -    { -      shared_ptr<base2> y (x); -      assert (y.count () == 2); -      assert (y->y_ == "foo"); -    } -    { -      shared_ptr<base2> y; -      y = x; -      assert (y.count () == 2); -    } -    assert (x.count () == 1); -  } - -  // Non-polymorphic type. -  // -  { -    shared_ptr<shared_type> x (new (shared) shared_type (5, "foo")); -    assert (x.count () == 1); -    assert (x); -    assert (x->x_ == 5); -    assert ((*x).y_ == "foo"); -    assert (x->_ref_count () == 1); -    x->_inc_ref (); -    assert (x.count () == 2); -    x->_dec_ref (); -    assert (x.count () == 1); -    { -      shared_ptr<shared_type> y (x); -      assert (y.count () == 2); -    } -    { -      shared_ptr<shared_type> y; -      y = x; -      assert (y.count () == 2); -    } -    assert (x.count () == 1); -    shared_ptr<shared_type> y (x.release ()); -    assert (y.count () == 1); -  } -} diff --git a/libcutl/tests/shared-ptr/makefile b/libcutl/tests/shared-ptr/makefile deleted file mode 100644 index 2303d78..0000000 --- a/libcutl/tests/shared-ptr/makefile +++ /dev/null @@ -1,69 +0,0 @@ -# file      : tests/shared-ptr/makefile -# copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC -# license   : MIT; 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) - -cutl.l             := $(out_root)/cutl/cutl.l -cutl.l.cpp-options := $(out_root)/cutl/cutl.l.cpp-options - -driver   := $(out_base)/driver -test     := $(out_base)/.test -clean    := $(out_base)/.clean - -# Build. -# -$(driver): $(cxx_obj) $(cutl.l) -$(cxx_obj) $(cxx_od): $(cutl.l.cpp-options) - - -$(call include-dep,$(cxx_od)) - - -# Alias for default target. -# -$(out_base)/: $(driver) - - -# Test. -# -$(test): $(driver) -	$(call message,test $<,$<) - - -# Clean. -# -$(clean):                            \ -  $(driver).o.clean                  \ -  $(addsuffix .cxx.clean,$(cxx_obj)) \ -  $(addsuffix .cxx.clean,$(cxx_od)) - - -# Generated .gitignore. -# -ifeq ($(out_base),$(src_base)) -$(driver): | $(out_base)/.gitignore - -$(out_base)/.gitignore: files := driver -$(clean): $(out_base)/.gitignore.clean - -$(call include,$(bld_root)/git/gitignore.make) -endif - - -# 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)/cutl/makefile) | 
