From: Carl Hetherington Date: Fri, 26 Oct 2012 15:41:06 +0000 (+0100) Subject: Fix up another deadlock. Tidy tests slightly. X-Git-Tag: v2.0.48~1614 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=520203da69da7b6638cba569ca1975a7dd036b5e Fix up another deadlock. Tidy tests slightly. --- diff --git a/src/lib/film.cc b/src/lib/film.cc index 81de2b518..9c351a64d 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -607,6 +607,7 @@ Film::thumb_file_for_frame (int n) const return thumb_base_for_frame(n) + ".png"; } +/** Must not be called with the _state_mutex locked */ string Film::thumb_base (int n) const { @@ -616,8 +617,6 @@ Film::thumb_base (int n) const string Film::thumb_base_for_frame (int n) const { - boost::mutex::scoped_lock lm (_state_mutex); - stringstream s; s.width (8); s << setfill('0') << n; @@ -631,6 +630,8 @@ Film::thumb_base_for_frame (int n) const /** @param n A thumb index. * @return The frame within the Film that it is for. + * + * Must not be called with the _state_mutex locked. */ int Film::thumb_frame (int n) const diff --git a/test/test.cc b/test/test.cc index cf09a7e4a..af5c1f501 100644 --- a/test/test.cc +++ b/test/test.cc @@ -59,18 +59,28 @@ setup_test_config () Config::instance()->set_server_port (61920); } +shared_ptr +new_test_film (string name) +{ + string const d = String::compose ("build/test/%1", name); + if (boost::filesystem::exists (d)) { + boost::filesystem::remove_all (d); + } + return shared_ptr (new Film (d, false)); +} + BOOST_AUTO_TEST_CASE (film_metadata_test) { dvdomatic_setup (); setup_test_config (); - - string const test_film = "build/test/film"; + + string const test_film = "build/test/film_metadata_test"; if (boost::filesystem::exists (test_film)) { boost::filesystem::remove_all (test_film); } - BOOST_CHECK_THROW (new Film ("build/test/film", true), OpenFileError); + BOOST_CHECK_THROW (new Film (test_film, true), OpenFileError); shared_ptr f (new Film (test_film, false)); BOOST_CHECK (f->format() == 0); @@ -262,7 +272,7 @@ BOOST_AUTO_TEST_CASE (md5_digest_test) BOOST_AUTO_TEST_CASE (paths_test) { - shared_ptr f (new Film ("build/test/film4", false)); + shared_ptr f = new_test_film ("paths_test"); f->set_directory ("build/test/a/b/c/d/e"); vector thumbs; thumbs.push_back (42); @@ -360,13 +370,7 @@ BOOST_AUTO_TEST_CASE (client_server_test) BOOST_AUTO_TEST_CASE (make_dcp_test) { - string const test_film = "build/test/film2"; - - if (boost::filesystem::exists (test_film)) { - boost::filesystem::remove_all (test_film); - } - - shared_ptr film (new Film (test_film, false)); + shared_ptr film = new_test_film ("make_dcp_test"); film->set_name ("test_film2"); film->set_content ("../../../test/test.mp4"); film->set_format (Format::from_nickname ("Flat")); @@ -382,13 +386,7 @@ BOOST_AUTO_TEST_CASE (make_dcp_test) BOOST_AUTO_TEST_CASE (make_dcp_with_range_test) { - string const test_film = "build/test/film3"; - - if (boost::filesystem::exists (test_film)) { - boost::filesystem::remove_all (test_film); - } - - shared_ptr film (new Film (test_film, false)); + shared_ptr film = new_test_film ("make_dcp_with_range_test"); film->set_name ("test_film3"); film->set_content ("../../../test/test.mp4"); film->examine_content (); @@ -406,7 +404,7 @@ BOOST_AUTO_TEST_CASE (make_dcp_with_range_test) BOOST_AUTO_TEST_CASE (audio_sampling_rate_test) { - shared_ptr f (new Film ("build/test/test_film5", false)); + shared_ptr f = new_test_film ("audio_sampling_rate_test"); f->set_frames_per_second (24); f->set_audio_sample_rate (48000); diff --git a/windows/installer.nsi.in b/windows/installer.nsi.in deleted file mode 100644 index 6bb534464..000000000 --- a/windows/installer.nsi.in +++ /dev/null @@ -1,119 +0,0 @@ -!include "MUI2.nsh" -Name "DVD-o-matic" - -RequestExecutionLevel admin - -outFile "DVD-o-matic @version@ @bits@-bit Installer.exe" -!define MUI_ICON "%resources%/dvdomatic.ico" -!define MUI_UNICON "%resources%/dvdomatic.ico" -!define MUI_SPECIALBITMAP "%resources%/dvdomatic.bmp" - -InstallDir "$PROGRAMFILES\DVD-o-matic" - -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "../../COPYING" -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH - -!insertmacro MUI_UNPAGE_WELCOME -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!insertmacro MUI_UNPAGE_FINISH - -!insertmacro MUI_LANGUAGE "English" - -Section "install" "Installation info" - -SetOutPath "$INSTDIR\bin" - -File "%deps%/bin/asdcp-libdcp.dll" -File "%deps%/bin/avcodec-54.dll" -File "%deps%/bin/avfilter-3.dll" -File "%deps%/bin/avformat-54.dll" -File "%deps%/bin/avutil-51.dll" -File "%deps%/bin/dcp.dll" -File "%deps%/bin/intl.dll" -File "%deps%/bin/kumu-libdcp.dll" -File "%deps%/bin/libboost_chrono-mt.dll" -File "%deps%/bin/libboost_filesystem-mt.dll" -File "%deps%/bin/libboost_system-mt.dll" -File "%deps%/bin/libboost_thread_win32-mt.dll" -File "%deps%/bin/libboost_date_time-mt.dll" -File "%deps%/bin/libeay32.dll" -File "%deps%/bin/libgcc_s_sjlj-1.dll" -File "%deps%/bin/libgio-2.0-0.dll" -File "%deps%/bin/libglib-2.0-0.dll" -File "%deps%/bin/libgobject-2.0-0.dll" -File "%deps%/bin/libjpeg-7.dll" -File "%deps%/bin/libMagick++-5.dll" -File "%deps%/bin/libMagickCore-5.dll" -File "%deps%/bin/libMagickWand-5.dll" -File "%deps%/bin/libopenjpeg-1.dll" -File "%deps%/bin/libpng14-14.dll" -File "%deps%/bin/libsigc-2.0-0.dll" -File "%deps%/bin/libsndfile-1.dll" -File "%deps%/bin/libssh.dll" -File "%deps%/bin/libstdc++-6.dll" -File "%deps%/bin/postproc-52.dll" -File "%deps%/bin/swresample-0.dll" -File "%deps%/bin/swscale-2.dll" -File "%deps%/bin/zlib1.dll" -File "%deps%/bin/libjpeg-8.dll" -File "%deps%/bin/wxbase28_gcc_custom.dll" -File "%deps%/bin/wxmsw28_core_gcc_custom.dll" -File "%deps%/bin/wxmsw28_adv_gcc_custom.dll" -File "%deps%/bin/libcairo-2.dll" -File "%deps%/bin/libfontconfig-1.dll" -File "%deps%/bin/libexpat-1.dll" -File "%deps%/bin/freetype6.dll" -File "%deps%/bin/libgthread-2.0-0.dll" -File "%deps%/bin/libpango-1.0-0.dll" -File "%deps%/bin/libgmodule-2.0-0.dll" -File "%deps%/bin/libpangocairo-1.0-0.dll" -File "%deps%/bin/libpangoft2-1.0-0.dll" -File "%deps%/bin/libpangowin32-1.0-0.dll" -File "%deps%/bin/libtiff3.dll" -File "%deps%/bin/jpeg62.dll" -File "%deps%/bin/libglibmm-2.4-1.dll" -File "%deps%/bin/libxml++-2.6-2.dll" -File "%deps%/bin/libxml2-2.dll" - -File "%binaries%/src/wx/dvdomatic-wx.dll" -File "%binaries%/src/lib/dvdomatic.dll" -File "%binaries%/src/tools/dvdomatic.exe" -File "%binaries%/src/tools/servomatic_cli.exe" -File "%binaries%/src/tools/servomatic_gui.exe" - -SetOutPath "$PROFILE\.magick" - -File "%deps%/etc/ImageMagick/delegates.xml" - -CreateShortCut "$DESKTOP\DVD-o-matic.lnk" "$INSTDIR\bin\dvdomatic.exe" "" -CreateShortCut "$DESKTOP\DVD-o-matic encode server.lnk" "$INSTDIR\bin\servomatic_gui.exe" "" - -CreateDirectory "$SMPROGRAMS\DVD-o-matic" -CreateShortCut "$SMPROGRAMS\DVD-o-matic\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 -CreateShortCut "$SMPROGRAMS\DVD-o-matic\DVD-o-matic.lnk" "$INSTDIR\bin\dvdomatic.exe" "" "$INSTDIR\bin\dvdomatic.exe" 0 -CreateShortCut "$SMPROGRAMS\DVD-o-matic\DVD-o-matic encode server.lnk" "$INSTDIR\bin\servomatic_gui.exe" "" "$INSTDIR\bin\servomatic_gui.exe" 0 - -WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic" "DisplayName" "DVD-o-matic (remove only)" -WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic" "UninstallString" "$INSTDIR\Uninstall.exe" - -WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - - -Section "Uninstall" - -RMDir /r "$INSTDIR\*.*" -RMDir "$INSTDIR" -Delete "$DESKTOP\DVD-o-matic.lnk" -Delete "$DESKTOP\DVD-o-matic encode server.lnk" -Delete "$SMPROGRAMS\DVD-o-matic\*.*" -RmDir "$SMPROGRAMS\DVD-o-matic" -DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\DVD-o-matic" -DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic" - -SectionEnd