    QMap<AudibleAlert, std::pair<int, int>> sound_stats;
  };
  
  void controls_thread(int loop_cnt) {
    PubMaster pm({"controlsState"});
    const int DT_CTRL = 10;  // ms
    for (int i = 0; i < loop_cnt; ++i) {
      for (auto &[alert, fn, loops] : sound_list) {
        printf("testing %s\n", qPrintable(fn));
        for (int j = 0; j < 1000 / DT_CTRL; ++j) {
 
</s>
  PubMaster pm({"controlsState", "deviceState"});
  MessageBuilder deviceStateMsg;
  auto deviceState = deviceStateMsg.initEvent().initDeviceState();
  deviceState.setStarted(true);

    QMap<AudibleAlert, std::pair<int, int>> sound_stats;
  };
  
  void controls_thread(int loop_cnt) {
  PubMaster pm({"controlsState", "deviceState"});
  MessageBuilder deviceStateMsg;
  auto deviceState = deviceStateMsg.initEvent().initDeviceState();
  deviceState.setStarted(true);

    const int DT_CTRL = 10;  // ms
    for (int i = 0; i < loop_cnt; ++i) {
      for (auto &[alert, fn, loops] : sound_list) {
        printf("testing %s\n", qPrintable(fn));
        for (int j = 0; j < 1000 / DT_CTRL; ++j) {
keep keep keep keep replace keep keep keep keep keep
 soundd: fix test case (#23075)

* init sound_stats

* send deviceState msg
selfdrive/ui/tests/test_sound.cc