You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							27 lines
						
					
					
						
							774 B
						
					
					
				
			
		
		
	
	
							27 lines
						
					
					
						
							774 B
						
					
					
				#include "catch2/catch.hpp"
 | 
						|
#define private public
 | 
						|
#include "common/params.h"
 | 
						|
#include "common/util.h"
 | 
						|
 | 
						|
TEST_CASE("params_nonblocking_put") {
 | 
						|
  char tmp_path[] = "/tmp/asyncWriter_XXXXXX";
 | 
						|
  const std::string param_path = mkdtemp(tmp_path);
 | 
						|
  auto param_names = {"CarParams", "IsMetric"};
 | 
						|
  {
 | 
						|
    Params params(param_path);
 | 
						|
    for (const auto &name : param_names) {
 | 
						|
      params.putNonBlocking(name, "1");
 | 
						|
      // param is empty
 | 
						|
      REQUIRE(params.get(name).empty());
 | 
						|
    }
 | 
						|
 | 
						|
    // check if thread is running
 | 
						|
    REQUIRE(params.future.valid());
 | 
						|
    REQUIRE(params.future.wait_for(std::chrono::milliseconds(0)) == std::future_status::timeout);
 | 
						|
  }
 | 
						|
  // check results
 | 
						|
  Params p(param_path);
 | 
						|
  for (const auto &name : param_names) {
 | 
						|
    REQUIRE(p.get(name) == "1");
 | 
						|
  }
 | 
						|
}
 | 
						|
 |