about summary refs log tree commit homepage
path: root/test/test_player_integration.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-09-01 02:06:51 +0000
committerEric Wong <normalperson@yhbt.net>2013-09-01 02:12:13 +0000
commit0208f3bfd132d58c31d5db06db6378277fa71c7b (patch)
tree8ed0c5b21b7bc12f7f7f891a6454a88014bdc29b /test/test_player_integration.rb
parent53b984b1e054a0804884ee83e2debe5baea8a222 (diff)
downloaddtas-0208f3bfd132d58c31d5db06db6378277fa71c7b.tar.gz
This helps in case dtas-player is hit with SIGKILL or the system
crashes.  This does not fsync(2) as that could introduce delays on
slow filesystems.  Users should open the file manually and fsync
themselves if they need to.
Diffstat (limited to 'test/test_player_integration.rb')
-rw-r--r--test/test_player_integration.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/test_player_integration.rb b/test/test_player_integration.rb
index b60ed36..e7f7306 100644
--- a/test/test_player_integration.rb
+++ b/test/test_player_integration.rb
@@ -188,6 +188,24 @@ class TestPlayerIntegration < Minitest::Unit::TestCase
     assert_equal "/", s.req("pwd")
   end
 
+  def test_state_file
+    state = Tempfile.new(%w(state .yml))
+    state_path = state.path
+    state.close!
+    s = client_socket
+    s.req_ok(%W(state dump #{state_path}))
+    hash = YAML.load(IO.binread(state_path))
+    assert_equal @sock_path, hash["socket"]
+    assert_equal "default", hash["sinks"][0]["name"]
+
+    assert_equal "", IO.binread(@state_tmp.path)
+    s.req_ok(%W(state dump))
+    orig = YAML.load(IO.binread(@state_tmp.path))
+    assert_equal orig, hash
+  ensure
+    File.unlink(state_path)
+  end
+
   def test_source_ed
     s = client_socket
     assert_equal "sox av ff", s.req("source ls")