summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-10-26 16:41:06 +0100
committerCarl Hetherington <cth@carlh.net>2012-10-26 16:41:06 +0100
commit520203da69da7b6638cba569ca1975a7dd036b5e (patch)
tree0c8682ab82055f9605ad22fe01fe42aa8b751d99
parent9d92cbeac32b8b22c9d79b936ac583d60fda5725 (diff)
Fix up another deadlock. Tidy tests slightly.
-rw-r--r--src/lib/film.cc5
-rw-r--r--test/test.cc36
-rw-r--r--windows/installer.nsi.in119
3 files changed, 20 insertions, 140 deletions
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<Film>
+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<Film> (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<Film> 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<Film> f (new Film ("build/test/film4", false));
+ shared_ptr<Film> f = new_test_film ("paths_test");
f->set_directory ("build/test/a/b/c/d/e");
vector<int> 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> film (new Film (test_film, false));
+ shared_ptr<Film> 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> film (new Film (test_film, false));
+ shared_ptr<Film> 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<Film> f (new Film ("build/test/test_film5", false));
+ shared_ptr<Film> 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