# -*- rd -*-

= NEWS --- The history of Cutter

== [release-1-1-7] 1.1.7: 2011-02-13

=== Cutter

==== Improvements

  * Supported growlnotify.

==== Changes

  * Droped Debian GNU/Linux lenny support.

==== Fixes

  * Fixed using unknown symbol on CentOS 5.5.
    [Reported by Hiroaki Nakamura]

=== Document

===== Fixes

  * Fixed typos in tutorial.
    [Reported by Hiroaki Nakamura]

=== Thanks

  * Hiroaki Nakamura

== [release-1-1-6] 1.1.6: 2011-02-09

=== Cutter

==== Improvments

  * Renamed an utility:
    * ((<cut_build_fixture_data_path()>)) -> ((<cut_build_fixture_path()>))
  * Added utitlities:
    * ((<gcut_take_string()>))
    * ((<cut_get_fixture_data()>))
    * ((<gcut_get_fixture_data()>))
    * ((<GCutEventLoop>))
    * ((<GCutGLibEventLoop>))
  * Supported Debian GNU/Linux squeeze.
    [Suggested by Romuald Conty]
  * Supported Ubuntu Maverick Meerkat.
  * Supported Fedora 14.
  * cutter.m4: supported --config-cache.
  * cutter.m4: supported custom Makefile for
    --enable-coverage. (specify custome Makefile name to
    AC_CHECK_COVERAGE() argument)
  * Supported notify-send.

==== Fixes

  * Fixed a wrong test.
    [Suggested by Ilya Barygin]

=== cut-diff

==== Improvements

  * Added ((<--label option|cut-diff#--label>)) that specify
    labels in header.

=== Thanks

  * Romuald Conty
  * Ilya Barygin

== [release-1-1-5] 1.1.5: 2010-09-06

=== Cutter

==== Improvements

  * Renamed assertions:
    * ((<cut_assert_path_exist()>)) -> ((<cut_assert_exist_path()>))
    * ((<cut_assert_path_not_exist()>)) -> ((<cut_assert_not_exist_path()>))
  * Added an assertion:
    * ((<gcut_assert_equal_string()>))
  * Renamed an utility:
    * ((<GCutEgg|GCutEgg.html>)) -> ((<GCutProcess|GCutProcess.html>))
  * Added utilities:
    * ((<cut_get_source_directory()>))
    * ((<cut_build_path_array()>))
    * ((<gcut_data_has_field()>))
    * ((<gcut_list_int_new()>))
    * ((<gcut_list_uint_new()>))
    * ((<gcut_take_new_list_int()>))
    * ((<gcut_take_new_list_uint()>))
  * Supported Ubuntu Lucid Lynx.
  * Supported configure result report on configure finish.
    [Suggested by Romain Tartière]
  * Supported libgoffice-0.8. (libgoffice-0.6 support was dropped.)
    [Suggested by Romain Tartière]
  * Supported lcov 1.9. #3056684
    [Patch by Romain Tartière]
  * Supported full-width spaces in test description.
  * Supported sub-cutter command in PATH.
    [Patch by Romain Tartière]

==== Fixes

  * Fixed locale depended tests.
    [Suggested by Romain Tartière]

=== cut-diff

==== Improvements

  * Added ((<--context-lines
    option|cut-diff#--context-lines>)) that specifies how
    many lines are shown around diff.

=== Documentation

==== Improvements

  * Used ports on FreeBSD.
    [Suggested by Romain Tartière]

=== Thanks

  * Romain Tartière

== [release-1-1-4] 1.1.4: 2010-06-10

Supported CentOS.

=== Cutter

==== Improvements

  * Added assertions:
    * ((<cut_assert_equal_file_raw()>))
    * ((<cut_assert_not_equal_file_raw()>))
    * ((<gcut_assert_not_equal_int64()>))
    * ((<gcut_assert_not_equal_uint64()>))
  * Added utilities:
    * ((<cut_get_test_directory()>))
  * Changed to use tabs in diff if they are needed.
  * Supported CentOS.

==== Fixes

  * Fixed a bug that assertion message is ignored.

=== Document

==== Fixes

  * Debian, Ubuntu: Fixed file paths. [Reported by Romuald Conty]

=== Thanks

  * Romuald Conty

== [release-1-1-3] 1.1.3: 2010-04-13

Improved test driven test support.

=== Cutter

==== Improvements

  * AC_CHECK_ENABLE_COVERAGE: Added a new 'coverage-force'
    target that reports coverage even if 'make check' is
    failed.

==== Bug fixes

  * Removed unneeded memory free [Reported by Zed Shaw]
  * AC_CHECK_ENABLE_COVERAGE: Fixed a bug that 8 spaces
    instead of a TAB is printed into Makefile.

=== GCutter

==== Improvements

  * Improved data driven test support:
    * ((<gcut_data_get_size()>))
    * ((<gcut_data_get_char()>))
    * ((<gcut_data_get_boolean()>))
    * ((<gcut_data_get_double()>))
    * ((<gcut_data_get_int64()>))
    * ((<gcut_data_get_uint64()>))
  * Added utilities:
    * ((<gcut_inspect_size()>))
    * ((<gcut_inspect_char()>))
    * ((<gcut_inspect_boolean()>))
    * ((<gcut_inspect_double()>))
    * ((<gcut_inspect_int64()>))
    * ((<gcut_inspect_uint64()>))

==== Bug fixes

  * Fixed a bug that gcut_list_inspect_enum() and
    gcut_list_inspect_flags() is crashed on Mac OS X.

=== Document

==== Bug fixes

  * Fixed dependency package list for  Cygwin 1.7.

=== Thanks

  * Zed Shaw

== [release-1-1-2] 1.1.2: 2010-04-03

Improves Windows support.

=== Cutter

==== Improvements

  * Supported lcov 1.8
  * Supported --enable-coverage=SOMETHING style.
    [Reported by gunyara-kun]
  * #2976775: Supported cut_omit() in cut_setup()
    [Reported by Romain Tartière]
  * Supported building and testing with Visual Studio C++ 2008

=== CppCutter

==== Improvements

  * Added ((<CUT_EXPORT>)) that is a macro to mark test function on Windows

=== Document

==== Improvements

  * Supported Ubuntu Karmic Koara.

=== Thanks

  * Romain Tartière
  * gunyara-kun

== [release-1-1-1] 1.1.1: 2010-03-11

Bug in 1.1.0 fixes and improvements of GObject and sockaddr support.

=== Cutter

==== Improvements

  * Supported DLL generated by Visual C++.
  * Added an assertion:
    * ((<cut_assert_equal_sockaddr()>))
  * Added test utilities:
    * ((<cut_equal_sockaddr()>))
    * ((<cut_inspect_sockaddr()>))
    * ((<cut_make_directory()>))

==== Fixes

  * Fixed a build problem on having stdint.h but not having inttypes.h.

=== GCutter

==== Improvements

  * Improved data driven test support:
    * ((<gcut_data_get_object()>))
  * Added utilities:
    * ((<gcut_list_new()>))
    * ((<gcut_take_new_list_object()>))
    * ((<gcut_list_object_free()>))

== [release-1-1-0] 1.1.0: 2009-11-03

NOTE: This release includes API incompatibility.

=== Cutter

==== Improvements

  * Add assertions for types defined in stdint.h [Yuto Hayamizu]
  * ((*API CHANGE*)): Re-enable optional assertion message

    Before:
      cut_assert_equal_string("a", "b", "message");

    After:
      cut_assert_equal_string("a", "b", cut_message("message"));

    * Add ((<cut_message()>))
    * Make ((<cut_set_message()>)) obsolete
    * Make ((<cut_set_message_va_list()>)) obsolete
    * Make ((<cut_keep_message()>)) obsolete

=== CppCutter

==== Improvements

  * Add supported types by
    ((<cppcut_assert_equal()>))
  * Support test definition detection in namespace
    * Make ((<CPPCUT_BEGIN_TEST_DECLS>)) obsolete
    * Make ((<CPPCUT_END_TEST_DECLS>)) obsolete
  * Support optional assertion message
    * Add ((<cppcut_message()>))

=== Thanks

  * Yuto Hayamizu

== [release-1-0-9] 1.0.9: 2009-10-20

=== Improvements

  * Add a function to ((<Assertion Utilities for GHashTable|cutter-Assertion-Utilities-for-GHashTable.html>)):
    * ((<gcut_hash_table_inspect_sorted()>))
  * Inspect hash table after sorted by key
  * Support colorized diff: ((<colorized-diff.png>))
  * Add --stop-before-test option that sets breakpoint
    before each test [Suggested by Yoshinori K. Okuji]
  * Add ((<cut-diff>)) command
  * Support unified diff
  * Support C++: ((<CppCutter|cutter-CppCutter.html>))

=== Bug fixes

  * Fix locale dependent bugs [Reported by Yoshinori K. Okuji]

=== Thanks

  * Yoshinori K. Okuji

== [release-1-0-8] 1.0.8: 2009-08-29

  * Support libsoup:
    * HTTP client:
      * ((<soupcut_client_new()>))
      * ((<soupcut_client_set_base()>))
      * ((<soupcut_client_send_message()>))
      * ((<soupcut_client_get()>))
      * ((<soupcut_client_get_n_messages()>))
      * ((<soupcut_client_get_latest_message()>))
      * ((<soupcut_client_get_async_context()>))
    * HTTP server:
      * ((<soupcut_server_take()>))
      * ((<soupcut_server_take_new()>))
      * ((<soupcut_server_build_uri()>))
    * Assertions:
      * ((<soupcut_message_assert_equal_content_type()>))
      * ((<soupcut_client_assert_equal_content_type()>))
      * ((<soupcut_client_assert_response()>))
      * ((<soupcut_client_assert_equal_body()>))
      * ((<soupcut_client_assert_match_body()>))
  * Add an function to ((<Assertion Utilities for GHashTable|cutter-gcut-hash-table.html>)):
    * ((<gcut_hash_table_string_string_copy()>))
  * Add mroonga to ((<project list that use Cutter|users.html>))
  * Support rpm package for Fedora
  * Support deb package for Debian
  * Support deb package for Ubuntu
  * Support lcov 1.7
  * Document:
    * Add ((<install document for Ubuntu|install-to-ubuntu.html>))
    * Add ((<install document for FreeBSD|install-to-freebsd.html>))
    * Add ((<install document for Mac OS X|install-to-mac-os-x.html>))
    * Add ((<install document for Solaris|install-to-solaris.html>))

== 1.0.7: 2009-05-20

  * Provide ((<Version Information|cutter-cut-version.html>))
  * Support ((<GBoxed type test data|gcut_data_get_boxed()>))
  * Display test name on crash (if available)
  * Add shared library parser
    * Support ELF (Linux/*BSD), PE (Windows),  Mach-O (Mac OS X)
    * Don't use BFD by default
  * Use ImageHlp instead of BFD on Windows
  * Document:
    * Add ((<cutter command's man|cutter.html>))
    * Add ((<install document for Debian|install-to-debian.html>))
    * Add ((<install document for Cygwin|install-to-cygwin.html>))
    * Add Cygwin related notes to ((<tutorial|tutorial.html>))
      [Yamakawa Hiroshi]
  * Add test utilities:
    * ((<cut_build_path()>))
  * Add assertions:
    * ((<cut_assert_equal_boolean()>))
    * ((<cut_assert_not_equal_boolean()>))
    * ((<cut_assert_equal_substring()>))
    * ((<cut_assert_not_equal_substring()>))
    * ((<cut_assert_not_equal_double()>)) [gunyara-kun]
    * ((<cut_assert_not_equal_int()>)) [gunyara-kun]
    * ((<cut_assert_not_equal_uint()>)) [gunyara-kun]
    * ((<cut_assert_not_equal_memory()>)) [gunyara-kun]
    * ((<cut_assert_not_equal_size()>)) [gunyara-kun]
    * ((<cut_assert_not_equal_string()>)) [gunyara-kun]
    * ((<gcut_assert_not_equal_pid()>)) [gunyara-kun]
  * Compatibility:
    * Make fixture functions without "cut_" prefix deprecated. [gunyara-kun]
      * ((<setup()>)) -> ((<cut_setup()>))
      * ((<teardown()>)) -> ((<cut_teardown()>))
      * ((<startup()>)) -> ((<cut_startup()>))
      * ((<shutdown()>)) -> ((<cut_shutdown()>))
  * Bug fixes:
    * Fix a typo in tutorial: [UNNO Hideyuki]
    * Fix file descriptor redirection: [UNNO Hideyuki]
  * Add --disable-signal-handling option

== 1.0.6: 2009-03-01

  * Add ((<project list that use Cutter|users.html>))
  * Add ((<convenience API for using external command|GCutEgg.html>))
  * Improve backtrace detection:
    * ((<CUT_RELATIVE_PATH>))
  * Improve user message related API for assertions:
    * Obsolete optional message
      * for supporting non-GCC compilers
    * Add APIs to set user message independently of assertions:
      * ((<cut_set_message()>))
      * ((<cut_set_message_va_list()>))
    * Add API to use the same message with assertions:
      * ((<cut_keep_message()>))
  * Improve data driven test support:
    * ((<Convenience test data API|cutter-Convenience-test-data-API.html>))
  * Add "cut_" prefix to fixture functions:
    * ((<cut_setup()>))
    * ((<cut_teardown()>))
    * ((<cut_startup()>))
    * ((<cut_shutdown()>))
  * Add test utilities:
    * ((<Object inspection functions|cutter-Object-inspection-functions.html>))
    * ((<cut_push_backtrace()>))
    * ((<cut_pop_backtrace()>))
    * ((<cut_take_replace()>))
    * ((<gcut_enum_parse()>))
    * ((<gcut_flags_get_all()>))
    * ((<gcut_flags_parse()>))
    * ((<gcut_list_equal_int()>))
    * ((<gcut_list_equal_uint()>))
    * ((<gcut_list_equal_string()>))
    * ((<gcut_list_inspect_enum()>))
    * ((<gcut_list_inspect_flags()>))
    * ((<gcut_list_inspect_int()>))
    * ((<gcut_list_inspect_object()>))
    * ((<gcut_list_inspect_string()>))
    * ((<gcut_list_inspect_uint()>))
    * ((<gcut_list_string_new_array()>))
    * ((<gcut_take_new_list_string_array()>))
  * Add assertions:
    * ((<cut_assert_equal_size()>))
    * ((<cut_return()>))
    * ((<gcut_assert_equal_list()>))
    * ((<gcut_assert_equal_pid()>))

== 1.0.5: 2008-10-15

  * Support max number of threads ran concurrently:
    * Add --max-threads option
    * For sub process:
      * ((<cut_sub_process_get_max_threads()>))
      * ((<cut_sub_process_set_max_threads()>))
  * Support GdkPixbuf:
    * Image comparison
    * Image diff
      * expected: ((<dark-circle.png>))
      * actual: ((<nested-circle.png>))
      * diff: ((<diff-dark-and-nested-circle.png>))
  * Improve debug support:
    * Add --keep-opening-modules option
      * Keep opening modules for resolving symbols on debugging
    * Show test result on SIGABORT like on SIGSEGV
  * --name option support iterated test
  * 'but was:' -> 'actual:'
  * Add test utilities:
    * ((<cut_take()>))
    * ((<cut_take_memdup()>))
    * ((<cut_take_memory()>))
    * ((<cut_take_strdup()>))
    * ((<cut_take_strndup()>))
    * ((<gcut_take_new_hash_table_string_string()>))
    * ((<gcut_take_new_list_string()>))
    * ((<gcut_hash_table_string_string_new()>))
    * ((<gcut_hash_table_string_string_new_va_list()>))
  * Add assertions:
    * ((<cut_assert_operator_double()>))
    * ((<cut_assert_operator_uint()>))
    * ((<gcut_assert_equal_enum()>))
    * ((<gcut_assert_equal_error()>))
    * ((<gcut_assert_equal_flags()>))
    * ((<gcut_assert_equal_int64()>))
    * ((<gcut_assert_equal_list_enum()>))
    * ((<gcut_assert_equal_list_flags()>))
    * ((<gcut_assert_equal_list_object()>))
    * ((<gcut_assert_equal_list_object_custom()>))
    * ((<gcut_assert_equal_object()>))
    * ((<gcut_assert_equal_object_custom()>))
  * Improve user defined assertion writing support:
    * Support backtrace
      * ((<cut_trace()>))
      * ((<cut_trace_with_info_expression()>))
    * ((<Writing assertion|writing-assertion.html>))
      * ((<Assertion writing helper|cutter-Assertion-writing-helper.html>))
      * ((<Assertion Utilities for GEnum and GFlags|cutter-Assertion-Utilities-for-GEnum-and-GFlags.html>))
      * ((<Assertion Utilities for GError|cutter-Assertion-Utilities-for-GError.html>))
      * ((<Assertion Utilities for GHashTable|cutter-Assertion-Utilities-for-GHashTable.html>))
      * ((<Assertion Utilities for GList|cutter-Assertion-Utilities-for-GList.html>))
      * ((<Assertion Utilities for GObject|cutter-Assertion-Utilities-for-GObject.html>))
      * ((<Assertion Utilities for GValue|cutter-Assertion-Utilities-for-GValue.html>))
    * ((<cut_equal_double()>))
    * ((<cut_equal_string()>))
  * Bug fixes:
    * Fix memory leak (Daijiro MORI)
    * Fix a bug that test result is ignored in setup()/teardown()

== 1.0.4: 2008-08-27

  * Option:
    * Add --stream-log-dir option that is for logging test
      result history
    * Add --fatal-failures option that test is aborted on
      failure (for cooperation with debugger)
  * Output:
    * Support folded diff
    * Output newline into long summary (".", "F", ...)
  * Add ((<cut_set_attributes()>)) to set
    attributes
  * Support ((<test on multi-process|cutter-Multi-Process.html>))
  * Support data driven test on multi-thread
  * Add assertions:
    * ((<gcut_assert_equal_hash_table_string_string()>))
    * ((<gcut_assert_equal_time_val()>))
  * Add utilities:
    * ((<gcut_hash_table_string_string_new()>))
    * ((<gcut_take_hash_table()>))
  * Fix:
    * Fix a build bug on no GOffice environment.
      (Reported by Kazumasa Matsunaga)
  * Experimental:
    * Add --analyzer mode that cutter analyzes test result log.

== 1.0.3: 2008-07-15

  * Support Data-Driven Testing:
    * ((<cut_add_data()>))
  * Add assertions:
    * ((<gcut_assert_equal_list_uint()>))
  * Rename assertions:
    * Rename features that requires GLib support to
      'gcut_XXX' from 'cut_XXX'. 'cut_XXX' can be still used
      but they are deprecated. See ((<Assertions with GLib support
      |cutter-Assertions-with-GLib-support.html>)) for more details.
  * Add utilities:
    * ((<cut_append_diff()>)):
      appends diff to a string.
    * ((<gcut_list_string_new()>))/((<gcut_list_string_free()>)):
      helps creating a list of strings.
    * ((<gcut_take_error()>)):
      takes ownership of GError * to Cutter.
    * ((<gcut_take_list()>)):
      takes ownership of GList * to Cutter.
    * ((<gcut_take_object()>)):
      takes ownership of GObject * to Cutter.

== 1.0.2: 2008-06-27

  * Support fixture data
    * cut_set_fixture_data_dir()
    * cut_get_fixture_data_string()
    * cut_build_fixture_data_path()
  * Add a utility
    * cut_remove_path()
  * Add assertions
    * cut_assert_equal_fixture_data_string()
    * cut_assert_path_not_exist()
    * cut_assert_remove_path()
    * cut_error_errno()
  * Experimental:
    * Windows support

== 1.0.1: 2008-06-13

  * Improve AC_CHECK_COVERAGE
  * Document:
    * Fix: Require GLib >= 2.16
  * Experimental:
    * Support GStreamer:
      * Transport test result to remote machine and so on
    * Support warmup()/cooldown()

== 1.0.0: 2008-05-20

  * Add assertions:
    * cut_assert_equal_pointer()
    * cut_assert_g_error()
    * cut_assert_match()
    * cut_assert_match_with_free()
  * Add --exclude-file option that specifies excluded files
    from test targets
  * Add --exclude-dir option that specifies excluded directories
    from test targets
  * Add --without-cutter to cutter.m4 (configure option)
  * Experimental:
    * Implement Cutter protocol (CutXMLStreamer and CutStreamParser)
    * Add cut_take_g_error()
    * Support Mac OS X

== 0.9.0: 2008-05-12

  * Add assertions.
    * cut_assert_equal_string_array_with_free()
    * cut_assert_true()
    * cut_assert_false()
    * cut_assert_file_exist()
  * Add AC_CHECK_GCUTTER
  * Experimental: Support GObject:
    * cut_take_g_object()

== 0.8.0: 2008-05-07

  * LGPL2 -> LGPL3
  * Add assertions.
    * cut_assert_equal_g_list_int()
    * cut_assert_equal_g_list_string()
    * cut_assert_errno()
  * Support omission: cut_omit()
  * Support startup/shutdown hooks that are ran on before
    test case start and end.
  * Support diff.
  * Support gcov.
  * Experimental: Support fork:
    * cut_fork()
    * cut_wait_process()
    * cut_fork_get_stdout_message()
    * cut_fork_get_stderr_message()

== 0.7.0: 2008-03-26

  * Fixed packaging failure.
  * Fixed --help-all.
  * Added a document for XML format reported by Cutter.

== 0.6.0: 2008-03-21

  * Added --xml-report option for reporting test result as XML.
  * Added --test-case-order option for sorting test case by name.
  * Added --version option for outputting Cutter version.
  * Added --disable-bfd option to configure.

== 0.5.0: 2008-03-10

  * Included missing cutter/gbsearcharray.h.

== 0.4.0: 2008-02-28

  * cut_pending() -> cut_pend().
  * Supported attributes.

== 0.3.0: 2007-12-14

  * Fixed documentation.
  * Marked cut_assert_equal_string_or_null() as deprecated.
  * cut_assert_equal_string() accepted NULL.
  * Removed an experimental API from document.

== 0.2.0: 2007-11-29

  * Initial release on SF.net.
