## NEWS NEWS — The history of Cutter |

## 1.2.3: 2014-02-09

As long time has passed since Cutter 1.2.2 release, there are some improvements and fixed bugs.

After Cutter 1.2.2 release, you can install Cutter from Fedora's official yum repository. No need to register Cutter yum repository on Fedora anymore.

### Cutter

#### Improvements

- [doc] Removed a needless period from installation link. [GitHub #6] [Patch by Masafumi Yokoyama]

- Supported lcov 1.10. [cutter-users-ja:92] [Reported by Siganai SE]

- [doc] Updated download URL on SF.net. [cutter-users-ja:91] [Reported by Siganai SE]

- [doc] Updated XML report format. [cutter-users-ja:91] [Reported by Siganai SE]

- Added more trace logs for loader. It helps you to investigate the case when no tests are loaded.

- [doc] Updated Cygwin's setup.exe URL.

- Added --log-level option. The value of default log level is "critical|error|warning|message".

#### Fixes

- [loader] Fixed a bug that ELF loader can't collect symbol because of wrong comparison.

- Fixed memory leaks on loading all modules.

- Fixed a warning from GCC 4.8.1 on Ubuntu 13.10 [GitHub #9] [Reported by Kazuhiro Yamato]

### CppCutter

#### Improvements

- Supported cppcut_assert_equal(const type_info &, const type_info &) [GitHub #4] [Patch by Kazuhiro Yamato]

- Supported to catch unhandled C++ exception in test case. This change avoids to crash when unexpected exception is thrown. [GitHub #8] [Suggested by Kazuhiro Yamato] [Patch by Kazuhiro Yamato]

- Supported to call destructors of objects on a stack even when an assertion is failed. [GitHub #10] [Patch by Kazuhiro Yamato]

#### Fixes

- [Clang] Fixed a compile error which is caused by missing std::type_info forward declaration.

- Fixed an invalid memory access when an exception is thrown in cutter's assertion function. [GitHub #11] [Patch by Kazuhiro Yamato]

### GCutter

#### Fixes

- [doc] Fixed a signal name typo about gcut-egg example.

### Thanks

- Kazuhiro Yamato

- Masafumi Yokoyama

- Siganai SE

## 1.2.2: 2012-10-29

We began to support Ubuntu 12.10 (Quantal Quetzal). There are some improvements and fixed bugs.

### Cutter

#### Improvements

- [doc] Added release procedure documentation.

- [doc] Improved documentation about Travis-CI configuraion.

- Supported Ubuntu 12.10 (Quantal Quetzal).

#### Fixes

- [sample][GTK+] Fixed missing GLIB_LIBS that has flags for GModule. [Reported by Hiroshi Umemoto]

### CppCutter

#### Fixes

- Fixed a bug that wrong data function is searched.

### GCutter

#### Fixes

- [sample] Fixed missing function call in sample code.

### Thanks

- Hiroshi Umemoto

## 1.2.1: 2012-08-15

We began to support Ubuntu Precise/Fedora 17. There are some UI related improvements and fixed bugs.

### Cutter

#### Improvements

- [UI][GTK+] Supported GTK+ < 2.22 for Debian GNU/Linux squeeze.

- [UI][console] Supported growlnotify.exe for windows.

- [UI][GTK+] Added menubar.

- [UI][GTK+] Improved to log an error message for showing URI.

- [UI][GTK+] Supported --with-fallback-browser option to customize fallback browser.

- Improved to use "()" as a part of function about backtrace.

- [UI][console] Added more color acceptable TERMs (xterm-256color, screen-256color, screen-color)

- Added Travis CI integration.

- Supported backtrace on SIGBUS [Patch by Kiwamu Okabe]

- Added Homebrew related paths by default on Mac OS X.

#### Changes

- [doc][Mac OS X] Recommended to use the official MacPorts repository. [Suggested by Hiroshi Umemoto]

- Supported Fedora 17.

- Dropped Fedora 16 support.

- Supported Ubuntu Precise.

#### Fixes

- [Clang] Fixed not to add extra "()" for function name of backtrace.

- Fixed compilation failure on MinGW.

### CppCutter

#### Improvements

- Supported nested namespace test case built by g++

### Thanks

- Hiroshi Umemoto

- Kiwamu Okabe

## 1.2.0: 2011-12-31

We improved C++ support and test runner interface.

### Cutter

#### Improvements

- [UI][console] Changed to show messages on failure, error and so on immediately. You need to use `--show-detail-immediately=no` command line option to show messages on end of test like earlier versions.

- [UI][GTK+] Supported iterated test.

- [UI][GTK+] Supported re-run test.

- [UI][GTK+] Unified cancel button and re-run button.

#### Changes

- Enabled deprecated GLib API. You need to use `--disable-deprecated-glib-api` configure option to disable deprecated GLib API.

- Supported Fedora 16.

- Dropped Fedora 15 support.

### CppCutter

#### Improvements

- Added more supported types by cppcut_assert_equal() .

- Added cppcut_assert_not_equal() .

- Added cppcut_assert_null() .

- Added cppcut_assert_not_null() .

- Added cppcut_assert_operator() .

## 1.1.9: 2011-10-22

We move the repository to GitHub from SF.net.

### Cutter

#### Changes

- Added Ubuntu Oneiric Ocelot support.

- Added CentOS 6 support.

#### Fixes

- Fixed as success test count with thread. [SF.net #3383253] [Reported by Romain Tartière]

### Thanks

- Romain Tartière

## 1.1.8: 2011-07-31

### Cutter

#### Improvements

- Supported notify-send availability detection.

- Added --mode=play option that plays test result from test log.

- Updated documents for Solaris 10.

- Supported assertion failures in other thread. Bug #3341429 [Reported by Romain Tartière]

- Fixed a problem that GTK+ test runner doesn't show test result quickly. [Patch by Tobias Gruetzmacher]

#### Changes

- Added Debian GNU/Linux wheezy support.

- Removed Ubuntu Maverick Meerkat support.

- Added Ubuntu Natty Narwhal support.

- Removed Fedora 14 support.

- Added Fedora 15 support.

### cut-diff

#### Improvements

- Made --label option optional.

### Thanks

- Romain Tartière

- Tobias Gruetzmacher

## 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

## 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 that specify labels in header.

### Thanks

- Romuald Conty

- Ilya Barygin

## 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 -> GCutProcess

- 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 that specifies how many lines are shown around diff.

### Documentation

#### Improvements

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

### Thanks

- Romain Tartière

## 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

## 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

## 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

## 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()

## 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

## 1.0.9: 2009-10-20

### Improvements

- Add a function to Assertion Utilities for GHashTable :

  - gcut_hash_table_inspect_sorted()

- Inspect hash table after sorted by key

- Support colorized diff:

- 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

### Bug fixes

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

### Thanks

- Yoshinori K. Okuji

## 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 :

  - gcut_hash_table_string_string_copy()

- Add mroonga to project list that use Cutter

- 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

  - Add install document for FreeBSD

  - Add install document for Mac OS X

  - Add install document for Solaris

## 1.0.7: 2009-05-20

- Provide Version Information

- Support GBoxed type test data

- 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

  - Add install document for Debian

  - Add install document for Cygwin

  - Add Cygwin related notes to tutorial [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

- Add convenience API for using external command

- 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

- Add "cut_" prefix to fixture functions:

  - cut_setup()

  - cut_teardown()

  - cut_startup()

  - cut_shutdown()

- Add test utilities:

  - Object inspection functions

  - 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:

    - actual:

    - diff:

- 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

    - Assertion writing helper

    - Assertion Utilities for GEnum and GFlags

    - Assertion Utilities for GError

    - Assertion Utilities for GHashTable

    - Assertion Utilities for GList

    - Assertion Utilities for GObject

    - Assertion Utilities for GValue

  - 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

- 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 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.