42 fs::path dir = fs::temp_directory_path() / (
"kicad_dblib_settings_" + std::to_string( wxGetProcessId() ) );
43 fs::path
path = dir /
"qa_dblib.kicad_dbl";
45 fs::remove_all( dir );
46 fs::create_directories( dir );
51 std::ifstream in(
path, std::ios::binary );
52 std::stringstream buffer;
54 return nlohmann::json::parse( buffer.str() );
57 nlohmann::json
json = readJson();
59 json[
"libraries"][0][
"x_vendor"] = 1;
60 json[
"libraries"][0][
"fields"][0][
"x_vendor"] = 2;
61 json[
"libraries"][0][
"properties"][
"x_vendor"] = 3;
64 std::ofstream out(
path, std::ios::binary | std::ios::trunc );
65 out <<
json.dump( 2 );
69 std::unique_ptr<DATABASE_LIB_SETTINGS> settings =
72 settings->m_Tables[0].key_col =
"MPN";
73 settings->SetReadOnly(
false );
77 nlohmann::json saved = readJson();
81 BOOST_CHECK_EQUAL( saved[
"libraries"][0][
"fields"][0][
"x_vendor"].get<int>(), 2 );
82 BOOST_CHECK_EQUAL( saved[
"libraries"][0][
"properties"][
"x_vendor"].get<int>(), 3 );
84 fs::remove_all( dir );
BOOST_CHECK_EQUAL(result, "25.4")