File: output_test.ml

package info (click to toggle)
liquidsoap 2.3.2-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 11,912 kB
  • sloc: ml: 67,867; javascript: 24,842; ansic: 273; xml: 114; sh: 96; lisp: 96; makefile: 26
file content (44 lines) | stat: -rw-r--r-- 1,442 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 ~on_start source =
  object (self)
    inherit
      Output.dummy
        ~clock ~autostart ~infallible:false ~register_telnet:false ~on_start
        ~on_stop:(fun () -> ())
        (Lang.source (source :> Source.source))

    method test_wake_up = self#wake_up
    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 on_start () = started := true 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 ~on_start ~autostart:true test_source in
  o#content_type_computation_allowed;
  assert (not o#can_generate_frame);
  o#test_wake_up;
  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;
  ()