## NEWS NEWS — The history of Cutter |

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