File: output_test.ml

package info (click to toggle)
liquidsoap 2.4.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,844 kB
  • sloc: ml: 74,136; javascript: 27,320; ansic: 505; sh: 139; xml: 114; lisp: 96; makefile: 26
file content (44 lines) | stat: -rw-r--r-- 1,429 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class dummy ~clock ~autostart source =
  object (self)
    inherit
      Output.dummy
        ~clock ~autostart ~infallible:false ~register_telnet:false
        (Lang.source (source :> Source.source))

    method test_wake_up = self#wake_up (self :> Clock.source)
    val mutable test_can_generate_frame = false
    method test_set_can_generate_frame = test_can_generate_frame <- true
    method! can_generate_frame = test_can_generate_frame
    method test_output = self#output
  end

class test_source =
  object (self)
    inherit Debug_sources.fail "test_source"
    val mutable test_can_generate_frame = false
    method test_set_can_generate_frame = test_can_generate_frame <- true
    method! can_generate_frame = test_can_generate_frame
    method! generate_frame = self#empty_frame
  end

let () =
  Frame_settings.lazy_config_eval := true;
  let started = ref false in
  let test_source = new test_source in
  let clock = Clock.create ~sync:`Passive () in
  Clock.start ~force:true clock;
  let o = new dummy ~clock ~autostart:true test_source in
  o#on_start (fun () -> started := true);
  o#content_type_computation_allowed;
  assert (not o#can_generate_frame);
  let a = o#test_wake_up in
  assert (not !started);
  Clock.tick clock;
  o#test_set_can_generate_frame;
  assert o#is_ready;
  test_source#test_set_can_generate_frame;
  assert test_source#is_ready;
  o#test_output;
  assert !started;
  o#sleep a;
  ()