# -*- rd -*-

= NEWS --- The history of Cutter

== 1.0.7: 2009-05-20

  * Provide ((<Version Information|cutter-cut-version.html>))
  * Support ((<GBoxed type test data|cutter-gcut-data.html#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()|cutter-cut-test-utils.html#cut-build-path>))
  * Add assertions:
    * ((<cut_assert_equal_boolean()|cutter-cut-assertions.html#cut-assert-equal-boolean>))
    * ((<cut_assert_not_equal_boolean()|cutter-cut-assertions.html#cut-assert-not-equal-boolean>))
    * ((<cut_assert_equal_substring()|cutter-cut-assertions.html#cut-assert-equal-substring>))
    * ((<cut_assert_not_equal_substring()|cutter-cut-assertions.html#cut-assert-not-equal-substring>))
    * ((<cut_assert_not_equal_double()|cutter-cut-assertions.html#cut-assert-not-equal-double>)) [gunyara-kun]
    * ((<cut_assert_not_equal_int()|cutter-cut-assertions.html#cut-assert-not-equal-int>)) [gunyara-kun]
    * ((<cut_assert_not_equal_uint()|cutter-cut-assertions.html#cut-assert-not-equal-int>)) [gunyara-kun]
    * ((<cut_assert_not_equal_memory()|cutter-cut-assertions.html#cut-assert-not-equal-memory>)) [gunyara-kun]
    * ((<cut_assert_not_equal_size()|cutter-cut-assertions.html#cut-assert-not-equal-size>)) [gunyara-kun]
    * ((<cut_assert_not_equal_string()|cutter-cut-assertions.html#cut-assert-not-equal-string>)) [gunyara-kun]
    * ((<gcut_assert_not_equal_pid()|cutter-gcut-assertions.html#gcut-assert-not-equal-pid>)) [gunyara-kun]
  * Compatibility:
    * Make fixture functions without "cut_" prefix deprecated. [gunyara-kun]
      * ((<setup()|cutter-cutter.html#setup>)) ->
        ((<cut_setup()|cutter-cutter.html#cut_setup>))
      * ((<teardown()|cutter-cutter.html#teardown>)) ->
        ((<cut_teardown()|cutter-cutter.html#cut_teardown>))
      * ((<startup()|cutter-cutter.html#startup>)) ->
        ((<cut_startup()|cutter-cutter.html#cut_startup>))
      * ((<shutdown()|cutter-cutter.html#shutdown>)) ->
        ((<cut_shutdown()|cutter-cutter.html#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>))
  * Add ((<convenience API for using external command|GCutEgg.html>))
  * Improve backtrace detection:
    * ((<CUT_RELATIVE_PATH|cutter-cut-helper.html#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()|cutter-cutter.html#cut-set-message>))
      * ((<cut_set_message_va_list()|cutter-cutter.html#cut-set-message-va-list>))
    * Add API to use the same message with assertions:
      * ((<cut_keep_message()|cutter-cutter.html#cut-keep-message>))
  * Improve data driven test support:
    * ((<Convenience test data API|cutter-gcut-data.html>))
  * Add "cut_" prefix to fixture functions:
    * ((<cut_setup()|cutter-cutter.html#cut-setup>))
    * ((<cut_teardown()|cutter-cutter.html#cut-teardown>))
    * ((<cut_startup()|cutter-cutter.html#cut-startup>))
    * ((<cut_shutdown()|cutter-cutter.html#cut-shutdown>))
  * Add test utilities:
    * ((<Object inspection functions|cutter-gcut-inspect.html>))
    * ((<cut_push_backtrace()|cutter-cut-helper.html#cut-push-backtrace>))
    * ((<cut_pop_backtrace()|cutter-cut-helper.html#cut-pop-backtrace>))
    * ((<cut_take_replace()|cutter-cut-test-utils.html#cut-take-replace>))
    * ((<gcut_enum_parse()|cutter-gcut-enum.html#gcut-enum-parse>))
    * ((<gcut_flags_get_all()|cutter-gcut-enum.html#gcut-flags-get-all>))
    * ((<gcut_flags_parse()|cutter-gcut-enum.html#gcut-flags-parse>))
    * ((<gcut_list_equal_int()|cutter-gcut-list.html#gcut-list-equal-int>))
    * ((<gcut_list_equal_uint()|cutter-gcut-list.html#gcut-list-equal-uint>))
    * ((<gcut_list_equal_string()|cutter-gcut-list.html#gcut-list-equal-string>))
    * ((<gcut_list_inspect_enum()|cutter-gcut-list.html#gcut-list-inspect-enum>))
    * ((<gcut_list_inspect_flags()|cutter-gcut-list.html#gcut-list-inspect-flags>))
    * ((<gcut_list_inspect_int()|cutter-gcut-list.html#gcut-list-inspect-int>))
    * ((<gcut_list_inspect_object()|cutter-gcut-list.html#gcut-list-inspect-object>))
    * ((<gcut_list_inspect_string()|cutter-gcut-list.html#gcut-list-inspect-string>))
    * ((<gcut_list_inspect_uint()|cutter-gcut-list.html#gcut-list-inspect-uint>))
    * ((<gcut_list_string_new_array()|cutter-gcut-test-utils.html#gcut-list-string-new-array>))
    * ((<gcut_take_new_list_string_array()|cutter-gcut-test-utils.html#gcut-take-new-list-string-array>))
  * Add assertions:
    * ((<cut_assert_equal_size()|cutter-cut-assertions.html#cut-assert-equal-size>))
    * ((<cut_return()|cutter-cut-assertions.html#cut-return>))
    * ((<gcut_assert_equal_list()|cutter-gcut-assertions.html#gcut-assert-equal-list>))
    * ((<gcut_assert_equal_pid()|cutter-gcut-assertions.html#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()|cutter-cut-multi-process.html>))
      * ((<cut_sub_process_set_max_threads()|cutter-cut-multi-process.html>))
  * 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()|cutter-cut-test-utils.html>))
    * ((<cut_take_memdup()|cutter-cut-test-utils.html>))
    * ((<cut_take_memory()|cutter-cut-test-utils.html>))
    * ((<cut_take_strdup()|cutter-cut-test-utils.html>))
    * ((<cut_take_strndup()|cutter-cut-test-utils.html>))
    * ((<gcut_take_new_hash_table_string_string()|cutter-gcut-test-utils.html>))
    * ((<gcut_take_new_list_string()|cutter-gcut-test-utils.html>))
    * ((<gcut_hash_table_string_string_new()|cutter-gcut-test-utils.html>))
    * ((<gcut_hash_table_string_string_new_va_list()|cutter-gcut-test-utils.html>))
  * Add assertions:
    * ((<cut_assert_operator_double()|cutter-cut-assertions.html>))
    * ((<cut_assert_operator_uint()|cutter-cut-assertions.html>))
    * ((<gcut_assert_equal_enum()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_error()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_flags()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_int64()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_list_enum()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_list_flags()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_list_object()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_list_object_custom()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_object()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_object_custom()|cutter-gcut-assertions.html>))
  * Improve user defined assertion writing support:
    * Support backtrace
      * ((<cut_trace()|cutter-cut-helper.html>))
      * ((<cut_trace_with_info_expression()|cutter-cut-helper.html>))
    * ((<Writing assertion|writing-assertion.html>))
      * ((<Assertion writing helper|cutter-cut-helper.html>))
      * ((<Assertion Utilities for GEnum and GFlags|cutter-gcut-enum.html>))
      * ((<Assertion Utilities for GError|cutter-gcut-error.html>))
      * ((<Assertion Utilities for GHashTable|cutter-gcut-hash-table.html>))
      * ((<Assertion Utilities for GList|cutter-gcut-list.html>))
      * ((<Assertion Utilities for GObject|cutter-gcut-object.html>))
      * ((<Assertion Utilities for GValue|cutter-gcut-value-equal.html>))
    * ((<cut_equal_double()|cutter-cut-test-utils.html>))
    * ((<cut_equal_string()|cutter-cut-test-utils.html>))
  * 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()|cutter-cutter.html>)) to set
    attributes
  * Support ((<test on multi-process|cutter-cut-multi-process.html>))
  * Support data driven test on multi-thread
  * Add assertions:
    * ((<gcut_assert_equal_hash_table_string_string()|cutter-gcut-assertions.html>))
    * ((<gcut_assert_equal_time_val()|cutter-gcut-assertions.html>))
  * Add utilities:
    * ((<gcut_hash_table_string_string_new()|cutter-gcut-test-utils.html>))
    * ((<gcut_take_hash_table()|cutter-gcut-test-utils.html>))
  * 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()|cutter-cutter.html>))
  * Add assertions:
    * ((<gcut_assert_equal_list_uint()|cutter-gcut-assertions.html>))
  * 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-gcut-assertions.html>)) for more details.
  * Add utilities:
    * ((<cut_append_diff()|cutter-cut-test-utils.html>)):
      appends diff to a string.
    * ((<gcut_list_string_new()|cutter-gcut-test-utils.html>))/
      ((<gcut_list_string_free()|cutter-gcut-test-utils.html>)):
      helps creating a list of strings.
    * ((<gcut_take_error()|cutter-gcut-test-utils.html>)):
      takes ownership of GError * to Cutter.
    * ((<gcut_take_list()|cutter-gcut-test-utils.html>)):
      takes ownership of GList * to Cutter.
    * ((<gcut_take_object()|cutter-gcut-test-utils.html>)):
      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.
