From a67116b0b92cfdc26425da904043dfb7fbbc55e8 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis <george.kiagiadakis@collabora.com> Date: Tue, 2 Feb 2021 19:15:05 +0200 Subject: [PATCH] wptoml: remove, it's not used anymore and drop cpptoml dependency as well --- .gitignore | 1 - .gitlab-ci.yml | 2 +- lib/meson.build | 1 - lib/wptoml/array.cpp | 178 ----------- lib/wptoml/array.h | 44 --- lib/wptoml/file.cpp | 80 ----- lib/wptoml/file.h | 32 -- lib/wptoml/meson.build | 30 -- lib/wptoml/private.h | 27 -- lib/wptoml/table.cpp | 461 --------------------------- lib/wptoml/table.h | 95 ------ lib/wptoml/wptoml.h | 11 - meson.build | 8 - subprojects/cpptoml.wrap | 4 - tests/meson.build | 1 - tests/wptoml/files/basic-array.toml | 4 - tests/wptoml/files/basic-table.toml | 12 - tests/wptoml/files/nested-array.toml | 1 - tests/wptoml/files/nested-table.toml | 6 - tests/wptoml/files/table-array.toml | 5 - tests/wptoml/meson.build | 12 - tests/wptoml/wptoml.c | 394 ----------------------- 22 files changed, 1 insertion(+), 1408 deletions(-) delete mode 100644 lib/wptoml/array.cpp delete mode 100644 lib/wptoml/array.h delete mode 100644 lib/wptoml/file.cpp delete mode 100644 lib/wptoml/file.h delete mode 100644 lib/wptoml/meson.build delete mode 100644 lib/wptoml/private.h delete mode 100644 lib/wptoml/table.cpp delete mode 100644 lib/wptoml/table.h delete mode 100644 lib/wptoml/wptoml.h delete mode 100644 subprojects/cpptoml.wrap delete mode 100644 tests/wptoml/files/basic-array.toml delete mode 100644 tests/wptoml/files/basic-table.toml delete mode 100644 tests/wptoml/files/nested-array.toml delete mode 100644 tests/wptoml/files/nested-table.toml delete mode 100644 tests/wptoml/files/table-array.toml delete mode 100644 tests/wptoml/meson.build delete mode 100644 tests/wptoml/wptoml.c diff --git a/.gitignore b/.gitignore index 533aaf17..36fc4d2c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ build/ -subprojects/cpptoml/ subprojects/lua-* subprojects/packagecache/ src/config/*testsrc.node diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 56a0bc83..211ab14e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ include: FDO_DISTRIBUTION_TAG: '2020-08-31.1' FDO_DISTRIBUTION_VERSION: '32' # findutils: used by the .build script below - # cmake: required for cpptoml submodule & hotdoc + # cmake: required for hotdoc # dbus-devel: required by pipewire # dbus-daemon: required by GDBus unit tests # libxml, json-glib: required by hotdoc diff --git a/lib/meson.build b/lib/meson.build index e1471538..c974d91f 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -1,3 +1,2 @@ subdir('wp') subdir('wplua') -subdir('wptoml') diff --git a/lib/wptoml/array.cpp b/lib/wptoml/array.cpp deleted file mode 100644 index 92b51803..00000000 --- a/lib/wptoml/array.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -/* C++ STL */ -#include <functional> - -/* CPPTOML */ -#include <cpptoml.h> - -/* TOML */ -#include "private.h" -#include "array.h" - -namespace wp { -namespace toml { - -/* The Array class */ -class Array { - public: - /* The data of the array */ - using Data = std::shared_ptr<const cpptoml::array>; - - /* The for each function for values */ - template <typename T> - using ForEachValueFunction = std::function<void(const T*, gpointer)>; - - /* The for each function for arrays of values */ - using ForEachArrayFunction = std::function<void(WpTomlArray *, gpointer )>; - - /* Constructor */ - Array(Data data) : - data_(std::move(data)) { - } - - /* Destructor */ - virtual ~Array() { - } - - /* Calls the given callback for values */ - template <typename T> - void ForEachValue(ForEachValueFunction<T> func, gpointer user_data) const { - for (const std::shared_ptr<cpptoml::value<T>>& v : data_->array_of<T>()) { - if (v) { - const T val = v->get(); - func(&val, user_data); - } else { - func(nullptr, user_data); - } - } - } - - /* Calls the given callback for arrays of values */ - void ForEachArray(ForEachArrayFunction func, gpointer user_data) const { - for (const Data& val : data_->nested_array()) { - gconstpointer d = static_cast<gconstpointer>(&val); - g_autoptr (WpTomlArray) a = wp_toml_array_new(d); - func(a, user_data); - } - } - - private: - /* Copy Constructor */ - Array(const Array&) = delete; - - /* Move Constructor */ - Array(Array &&) = delete; - - /* Copy-Assign Constructor */ - Array& operator=(const Array&) = delete; - - /* Move-Assign Constructr */ - Array& operator=(Array &&) = delete; - - private: - /* The data array */ - const Data data_; -}; - -} /* namespace toml */ -} /* namespace wp */ - -struct _WpTomlArray -{ - const wp::toml::Array *data; -}; - -G_DEFINE_BOXED_TYPE(WpTomlArray, wp_toml_array, wp_toml_array_ref, - wp_toml_array_unref) - -WpTomlArray * -wp_toml_array_new (gconstpointer data) -{ - g_return_val_if_fail (data, nullptr); - - try { - g_autoptr(WpTomlArray) self = g_rc_box_new (WpTomlArray); - - /* Set the data */ - const wp::toml::Array::Data *d = - static_cast<const wp::toml::Array::Data *>(data); - self->data = new wp::toml::Array {*d}; - - return static_cast<WpTomlArray *>(g_steal_pointer (&self)); - } catch (std::bad_alloc& ba) { - g_critical ("Could not create WpTomlArray: %s", ba.what()); - return nullptr; - } catch (...) { - g_critical ("Could not create WpTomlArray"); - return nullptr; - } -} - -WpTomlArray * -wp_toml_array_ref (WpTomlArray * self) -{ - return static_cast<WpTomlArray *>( - g_rc_box_acquire (static_cast<gpointer>(self))); -} - -void -wp_toml_array_unref (WpTomlArray * self) -{ - static void (*free_func)(gpointer) = [](gpointer p){ - WpTomlArray *a = static_cast<WpTomlArray *>(p); - delete a->data; - }; - g_rc_box_release_full (self, free_func); -} - -void -wp_toml_array_for_each_boolean (const WpTomlArray *self, - WpTomlArrayForEachBoolFunc func, gpointer user_data) -{ - self->data->ForEachValue<bool>([&](const bool *v, gpointer d){ - if (v) { - const gboolean b = *v ? TRUE : FALSE; - func(&b, d); - } else { - func(nullptr, d); - } - }, user_data); -} - -void -wp_toml_array_for_each_int64 (const WpTomlArray *self, - WpTomlArrayForEachInt64Func func, gpointer user_data) -{ - self->data->ForEachValue<int64_t>(func, user_data); -} - -void -wp_toml_array_for_each_double (const WpTomlArray *self, - WpTomlArrayForEachDoubleFunc func, gpointer user_data) -{ - self->data->ForEachValue<double>(func, user_data); -} - -void -wp_toml_array_for_each_string (const WpTomlArray *self, - WpTomlArrayForEachStringFunc func, gpointer user_data) -{ - self->data->ForEachValue<std::string>([&](const std::string *v, gpointer d){ - func(v ? v->c_str() : nullptr, d); - }, user_data); -} - -void -wp_toml_array_for_each_array (const WpTomlArray *self, - WpTomlArrayForEachArrayFunc func, gpointer user_data) -{ - self->data->ForEachArray(func, user_data); -} - diff --git a/lib/wptoml/array.h b/lib/wptoml/array.h deleted file mode 100644 index a75ac6e5..00000000 --- a/lib/wptoml/array.h +++ /dev/null @@ -1,44 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -#ifndef __WP_TOML_ARRAY_H__ -#define __WP_TOML_ARRAY_H__ - -#include <glib-object.h> - -#include <stdint.h> - -G_BEGIN_DECLS - -/* WpTomlArray */ -GType wp_toml_array_get_type (void); -typedef struct _WpTomlArray WpTomlArray; -WpTomlArray * wp_toml_array_ref (WpTomlArray * self); -void wp_toml_array_unref (WpTomlArray * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (WpTomlArray, wp_toml_array_unref) - -/* API */ -typedef void (*WpTomlArrayForEachBoolFunc)(const gboolean *, gpointer); -void wp_toml_array_for_each_boolean (const WpTomlArray *self, - WpTomlArrayForEachBoolFunc func, gpointer user_data); -typedef void (*WpTomlArrayForEachInt64Func)(const int64_t *, gpointer); -void wp_toml_array_for_each_int64 (const WpTomlArray *self, - WpTomlArrayForEachInt64Func func, gpointer user_data); -typedef void (*WpTomlArrayForEachDoubleFunc)(const double *, gpointer); -void wp_toml_array_for_each_double (const WpTomlArray *self, - WpTomlArrayForEachDoubleFunc func, gpointer user_data); -typedef void (*WpTomlArrayForEachStringFunc)(const char *, gpointer); -void wp_toml_array_for_each_string (const WpTomlArray *self, - WpTomlArrayForEachStringFunc func, gpointer user_data); -typedef void (*WpTomlArrayForEachArrayFunc)(WpTomlArray *, gpointer); -void wp_toml_array_for_each_array (const WpTomlArray *self, - WpTomlArrayForEachArrayFunc func, gpointer user_data); - -G_END_DECLS - -#endif diff --git a/lib/wptoml/file.cpp b/lib/wptoml/file.cpp deleted file mode 100644 index 4b53e036..00000000 --- a/lib/wptoml/file.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -/* CPPTOML */ -#include <cpptoml.h> - -/* TOML */ -#include "private.h" -#include "file.h" - -struct _WpTomlFile -{ - char *name; - WpTomlTable *table; -}; - -G_DEFINE_BOXED_TYPE(WpTomlFile, wp_toml_file, wp_toml_file_ref, - wp_toml_file_unref) - -WpTomlFile * -wp_toml_file_new (const char *name) -{ - g_return_val_if_fail (name, nullptr); - - try { - g_autoptr (WpTomlFile) self = g_rc_box_new (WpTomlFile); - - /* Set the name */ - self->name = g_strdup (name); - - /* Set the table by parsing the file */ - std::shared_ptr<cpptoml::table> data = cpptoml::parse_file(name); - self->table = wp_toml_table_new (static_cast<gconstpointer>(&data)); - - return static_cast<WpTomlFile *>(g_steal_pointer (&self)); - } catch (std::bad_alloc& ba) { - g_critical ("Could not create WpTomlFile from '%s': %s", name, ba.what()); - return nullptr; - } catch (...) { - g_critical ("Could not create WpTomlFile from '%s'", name); - return nullptr; - } -} - -WpTomlFile * -wp_toml_file_ref (WpTomlFile * self) -{ - return static_cast<WpTomlFile *>( - g_rc_box_acquire (static_cast<gpointer>(self))); -} - -void -wp_toml_file_unref (WpTomlFile * self) -{ - static void (*free_func)(gpointer) = [](gpointer p){ - WpTomlFile *f = static_cast<WpTomlFile *>(p); - g_free (f->name); - f->name = nullptr; - wp_toml_table_unref (f->table); - f->table = nullptr; - }; - g_rc_box_release_full (self, free_func); -} - -const char * -wp_toml_file_get_name (const WpTomlFile *self) -{ - return self->name; -} - -WpTomlTable * -wp_toml_file_get_table (const WpTomlFile *self) -{ - return wp_toml_table_ref (self->table); -} diff --git a/lib/wptoml/file.h b/lib/wptoml/file.h deleted file mode 100644 index 753d94b8..00000000 --- a/lib/wptoml/file.h +++ /dev/null @@ -1,32 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -#ifndef __WP_TOML_FILE_H__ -#define __WP_TOML_FILE_H__ - -#include <glib-object.h> - -#include "table.h" - -G_BEGIN_DECLS - -/* WpTomlFile */ -GType wp_toml_file_get_type (void); -typedef struct _WpTomlFile WpTomlFile; -WpTomlFile *wp_toml_file_new (const char *name); -WpTomlFile * wp_toml_file_ref (WpTomlFile * self); -void wp_toml_file_unref (WpTomlFile * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (WpTomlFile, wp_toml_file_unref) - -/* API */ -const char *wp_toml_file_get_name (const WpTomlFile *self); -WpTomlTable *wp_toml_file_get_table (const WpTomlFile *self); - -G_END_DECLS - -#endif diff --git a/lib/wptoml/meson.build b/lib/wptoml/meson.build deleted file mode 100644 index 7d04e901..00000000 --- a/lib/wptoml/meson.build +++ /dev/null @@ -1,30 +0,0 @@ -wptoml_lib_sources = [ - 'array.cpp', - 'table.cpp', - 'file.cpp', -] - -wptoml_lib_headers = [ - 'wptoml.h', - 'array.h', - 'table.h', - 'file.h', -] - -wptoml_lib = static_library('wptoml-' + wireplumber_api_version, - wptoml_lib_sources, - cpp_args : [ - '-D_GNU_SOURCE', - '-DG_LOG_USE_STRUCTURED', - '-DG_LOG_DOMAIN="libwptoml"', - ], - install: false, - include_directories: wp_lib_include_dir, - dependencies : [gobject_dep, cpptoml_dep], -) - -wptoml_dep = declare_dependency( - link_with: wptoml_lib, - include_directories: wp_lib_include_dir, - dependencies: [gobject_dep] -) diff --git a/lib/wptoml/private.h b/lib/wptoml/private.h deleted file mode 100644 index 2272015a..00000000 --- a/lib/wptoml/private.h +++ /dev/null @@ -1,27 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -#ifndef __WP_TOML_PRIVATE_H__ -#define __WP_TOML_PRIVATE_H__ - -#include <glib-object.h> - -G_BEGIN_DECLS - -/* Forward declaration */ -struct _WpTomlArray; -typedef struct _WpTomlArray WpTomlArray; -struct _WpTomlTable; -typedef struct _WpTomlTable WpTomlTable; - -WpTomlArray * wp_toml_array_new (gconstpointer data); -WpTomlTable * wp_toml_table_new (gconstpointer data); - -G_END_DECLS - -#endif diff --git a/lib/wptoml/table.cpp b/lib/wptoml/table.cpp deleted file mode 100644 index 40368f58..00000000 --- a/lib/wptoml/table.cpp +++ /dev/null @@ -1,461 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -/* C++ STL */ -#include <functional> - -/* CPPTOML */ -#include <cpptoml.h> - -/* TOML */ -#include "private.h" -#include "table.h" - -namespace wp { -namespace toml { - -/* The Table class */ -class Table { - public: - /* The data of the array */ - using Data = std::shared_ptr<const cpptoml::table>; - - /* Constructor */ - Table(Data data) : - data_(std::move(data)) { - } - - /* Destructor */ - virtual ~Table() { - } - - /* Determines if this table contains the given key */ - bool Contains(const std::string& key) const { - return data_->contains(key); - } - - /* Gets a value */ - template <typename T> - bool GetValue(const std::string& key, T *val, bool qualified) const { - g_return_val_if_fail (val, false); - const cpptoml::option<T> opt = - qualified ? data_->get_qualified_as<T>(key) : data_->get_as<T>(key); - if (!opt) - return false; - *val = *opt; - return true; - } - - /* Gets an array of values */ - std::shared_ptr<const cpptoml::array> GetArray(const std::string& key, - bool qualified) const { - return qualified ? data_->get_array_qualified(key) : data_->get_array(key); - } - - /* Gets an array of tables */ - std::shared_ptr<const cpptoml::table_array> GetTableArray( - const std::string& key, bool qualified) const { - return qualified ? data_->get_table_array_qualified(key) : - data_->get_table_array(key); - } - - /* Gets a nested table */ - Data GetTable(const std::string& key, bool qualified) const { - return qualified ? data_->get_table_qualified(key) : data_->get_table(key); - } - - private: - /* Copy Constructor */ - Table(const Table&) = delete; - - /* Move Constructor */ - Table(Table &&) = delete; - - /* Copy-Assign Constructor */ - Table& operator=(const Table&) = delete; - - /* Move-Assign Constructr */ - Table& operator=(Table &&) = delete; - - private: - /* The data table */ - const Data data_; -}; - -/* The Array Table class */ -class TableArray { - public: - /* The data of the array */ - using Data = std::shared_ptr<const cpptoml::table_array>; - - /* The for each function for arrays of tables */ - using ForEachFunction = std::function<void(WpTomlTable *, gpointer)>; - - /* Constructor */ - TableArray(Data data) : - data_(std::move(data)) { - } - - /* Destructor */ - virtual ~TableArray() { - } - - /* Calls the given callback for arrays of values */ - void ForEach(ForEachFunction func, gpointer user_data) const { - for (const auto& table : *data_) { - gconstpointer p = static_cast<gconstpointer>(&table); - g_autoptr (WpTomlTable) t = wp_toml_table_new(p); - func(t, user_data); - } - } - - private: - /* Copy Constructor */ - TableArray(const TableArray&) = delete; - - /* Move Constructor */ - TableArray(TableArray &&) = delete; - - /* Copy-Assign Constructor */ - TableArray& operator=(const TableArray&) = delete; - - /* Move-Assign Constructr */ - TableArray& operator=(TableArray &&) = delete; - - private: - /* The data array */ - const Data data_; -}; - -} /* namespace toml */ -} /* namespace wp */ - -struct _WpTomlTable -{ - wp::toml::Table *data; -}; - -G_DEFINE_BOXED_TYPE(WpTomlTable, wp_toml_table, wp_toml_table_ref, - wp_toml_table_unref) - -struct _WpTomlTableArray -{ - const wp::toml::TableArray *data; -}; - -G_DEFINE_BOXED_TYPE(WpTomlTableArray, wp_toml_table_array, - wp_toml_table_array_ref, wp_toml_table_array_unref) - -WpTomlTable * -wp_toml_table_new (gconstpointer data) -{ - g_return_val_if_fail (data, nullptr); - - try { - g_autoptr (WpTomlTable) self = g_rc_box_new (WpTomlTable); - - /* Set the data */ - const wp::toml::Table::Data *d = - static_cast<const wp::toml::Table::Data *>(data); - self->data = new wp::toml::Table {*d}; - - return static_cast<WpTomlTable *>(g_steal_pointer (&self)); - } catch (std::bad_alloc& ba) { - g_critical ("Could not create WpTomlTable: %s", ba.what()); - return nullptr; - } catch (...) { - g_critical ("Could not create WpTomlTable"); - return nullptr; - } -} - -WpTomlTable * -wp_toml_table_ref (WpTomlTable * self) -{ - return static_cast<WpTomlTable *>( - g_rc_box_acquire (static_cast<gpointer>(self))); -} - -void -wp_toml_table_unref (WpTomlTable * self) -{ - static void (*free_func)(gpointer) = [](gpointer p){ - WpTomlTable *t = static_cast<WpTomlTable *>(p); - delete t->data; - }; - g_rc_box_release_full (self, free_func); -} - -static WpTomlTableArray * -wp_toml_table_array_new (gconstpointer data) -{ - g_return_val_if_fail (data, nullptr); - - try { - g_autoptr (WpTomlTableArray) self = g_rc_box_new (WpTomlTableArray); - - /* Set the data */ - const wp::toml::TableArray::Data *d = - static_cast<const wp::toml::TableArray::Data *>(data); - self->data = new wp::toml::TableArray {*d}; - - return static_cast<WpTomlTableArray *>(g_steal_pointer (&self)); - } catch (std::bad_alloc& ba) { - g_critical ("Could not create WpTomlTableArray: %s", ba.what()); - return nullptr; - } catch (...) { - g_critical ("Could not create WpTomlTableArray"); - return nullptr; - } -} - -WpTomlTableArray * -wp_toml_table_array_ref (WpTomlTableArray * self) -{ - return static_cast<WpTomlTableArray *>( - g_rc_box_acquire (static_cast<gpointer>(self))); -} - -void -wp_toml_table_array_unref (WpTomlTableArray * self) -{ - static void (*free_func)(gpointer) = [](gpointer p){ - WpTomlTableArray *at = static_cast<WpTomlTableArray *>(p); - delete at->data; - }; - g_rc_box_release_full (self, free_func); -} - -gboolean -wp_toml_table_contains (const WpTomlTable *self, const char *key) { - return self->data->Contains(key); -} - -gboolean -wp_toml_table_get_boolean (const WpTomlTable *self, const char *key, - gboolean *val) -{ - bool v; - if (!self->data->GetValue<bool>(key, &v, false)) - return false; - *val = v ? TRUE : FALSE; - return true; -} - -gboolean -wp_toml_table_get_qualified_boolean (const WpTomlTable *self, const char *key, - gboolean *val) -{ - bool v; - if (!self->data->GetValue<bool>(key, &v, true)) - return false; - *val = v ? TRUE : FALSE; - return true; -} - -gboolean -wp_toml_table_get_int8 (const WpTomlTable *self, const char *key, int8_t *val) -{ - return self->data->GetValue<int8_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_int8 (const WpTomlTable *self, const char *key, - int8_t *val) -{ - return self->data->GetValue<int8_t>(key, val, true); -} - -gboolean -wp_toml_table_get_uint8 (const WpTomlTable *self, const char *key, uint8_t *val) -{ - return self->data->GetValue<uint8_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_uint8 (const WpTomlTable *self, const char *key, - uint8_t *val) -{ - return self->data->GetValue<uint8_t>(key, val, true); -} - -gboolean -wp_toml_table_get_int16 (const WpTomlTable *self, const char *key, int16_t *val) -{ - return self->data->GetValue<int16_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_int16 (const WpTomlTable *self, const char *key, - int16_t *val) -{ - return self->data->GetValue<int16_t>(key, val, true); -} - -gboolean -wp_toml_table_get_uint16 (const WpTomlTable *self, const char *key, - uint16_t *val) -{ - return self->data->GetValue<uint16_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_uint16 (const WpTomlTable *self, const char *key, - uint16_t *val) -{ - return self->data->GetValue<uint16_t>(key, val, true); -} - -gboolean -wp_toml_table_get_int32 (const WpTomlTable *self, const char *key, int32_t *val) -{ - return self->data->GetValue<int32_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_int32 (const WpTomlTable *self, const char *key, - int32_t *val) -{ - return self->data->GetValue<int32_t>(key, val, true); -} - -gboolean -wp_toml_table_get_uint32 (const WpTomlTable *self, const char *key, - uint32_t *val) -{ - return self->data->GetValue<uint32_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_uint32 (const WpTomlTable *self, const char *key, - uint32_t *val) -{ - return self->data->GetValue<uint32_t>(key, val, true); -} - -gboolean -wp_toml_table_get_int64 (const WpTomlTable *self, const char *key, int64_t *val) -{ - return self->data->GetValue<int64_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_int64 (const WpTomlTable *self, const char *key, - int64_t *val) -{ - return self->data->GetValue<int64_t>(key, val, true); -} - -gboolean -wp_toml_table_get_uint64 (const WpTomlTable *self, const char *key, - uint64_t *val) -{ - return self->data->GetValue<uint64_t>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_uint64 (const WpTomlTable *self, const char *key, - uint64_t *val) -{ - return self->data->GetValue<uint64_t>(key, val, true); -} - -gboolean -wp_toml_table_get_double (const WpTomlTable *self, const char *key, double *val) -{ - return self->data->GetValue<double>(key, val, false); -} - -gboolean -wp_toml_table_get_qualified_double (const WpTomlTable *self, const char *key, - double *val) -{ - return self->data->GetValue<double>(key, val, true); -} - -char * -wp_toml_table_get_string (const WpTomlTable *self, const char *key) -{ - std::string str; - return self->data->GetValue<std::string>(key, &str, false) ? - g_strdup (str.c_str()) : nullptr; -} - -char * -wp_toml_table_get_qualified_string (const WpTomlTable *self, const char *key) -{ - std::string str; - return self->data->GetValue<std::string>(key, &str, true) ? - g_strdup (str.c_str()) : nullptr; -} - -WpTomlArray * -wp_toml_table_get_array (const WpTomlTable *self, const char *key) -{ - std::shared_ptr<const cpptoml::array> array = - self->data->GetArray(key, false); - return array ? - wp_toml_array_new (static_cast<gconstpointer>(&array)) : - nullptr; -} - -WpTomlArray * -wp_toml_table_get_qualified_array (const WpTomlTable *self, const char *key) -{ - std::shared_ptr<const cpptoml::array> array = - self->data->GetArray(key, true); - return array ? - wp_toml_array_new (static_cast<gconstpointer>(&array)) : - nullptr; -} - -WpTomlTable * -wp_toml_table_get_table (const WpTomlTable *self, const char *key) -{ - wp::toml::Table::Data table = self->data->GetTable(key, false); - return table ? - wp_toml_table_new (static_cast<gconstpointer>(&table)) : - nullptr; -} - -WpTomlTable * -wp_toml_table_get_qualified_table (const WpTomlTable *self, const char *key) -{ - wp::toml::Table::Data table = self->data->GetTable(key, true); - return table ? - wp_toml_table_new (static_cast<gconstpointer>(&table)) : - nullptr; -} - -WpTomlTableArray * -wp_toml_table_get_array_table (const WpTomlTable *self, const char *key) -{ - std::shared_ptr<const cpptoml::table_array> array_table = - self->data->GetTableArray(key, false); - return array_table ? - wp_toml_table_array_new (static_cast<gconstpointer>(&array_table)) : - nullptr; -} - -WpTomlTableArray * -wp_toml_table_get_qualified_array_table (const WpTomlTable *self, - const char *key) -{ - std::shared_ptr<const cpptoml::table_array> array_table = - self->data->GetTableArray(key, true); - return array_table ? - wp_toml_table_array_new (static_cast<gconstpointer>(&array_table)) : - nullptr; -} - -void -wp_toml_table_array_for_each (const WpTomlTableArray *self, - WpTomlTableArrayForEachFunc func, gpointer user_data) -{ - self->data->ForEach(func, user_data); -} diff --git a/lib/wptoml/table.h b/lib/wptoml/table.h deleted file mode 100644 index a62367fc..00000000 --- a/lib/wptoml/table.h +++ /dev/null @@ -1,95 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -#ifndef __WP_TOML_TABLE_H__ -#define __WP_TOML_TABLE_H__ - -#include <glib-object.h> - -#include <stdint.h> - -#include "array.h" - -G_BEGIN_DECLS - -/* WpTomlTable */ -GType wp_toml_table_get_type (void); -typedef struct _WpTomlTable WpTomlTable; -WpTomlTable * wp_toml_table_ref (WpTomlTable * self); -void wp_toml_table_unref (WpTomlTable * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (WpTomlTable, wp_toml_table_unref) - -/* WpTomlTableArray */ -GType wp_toml_table_array_get_type (void); -typedef struct _WpTomlTableArray WpTomlTableArray; -WpTomlTableArray * wp_toml_table_array_ref (WpTomlTableArray * self); -void wp_toml_table_array_unref (WpTomlTableArray * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (WpTomlTableArray, wp_toml_table_array_unref) - -/* API */ -gboolean wp_toml_table_contains (const WpTomlTable *self, const char *key); -gboolean wp_toml_table_get_boolean (const WpTomlTable *self, const char *key, - gboolean *val); -gboolean wp_toml_table_get_qualified_boolean (const WpTomlTable *self, - const char *key, gboolean *val); -gboolean wp_toml_table_get_int8 (const WpTomlTable *self, const char *key, - int8_t *val); -gboolean wp_toml_table_get_qualified_int8 (const WpTomlTable *self, - const char *key, int8_t *val); -gboolean wp_toml_table_get_uint8 (const WpTomlTable *self, const char *key, - uint8_t *val); -gboolean wp_toml_table_get_qualified_uint8 (const WpTomlTable *self, - const char *key, uint8_t *val); -gboolean wp_toml_table_get_int16 (const WpTomlTable *self, const char *key, - int16_t *val); -gboolean wp_toml_table_get_qualified_int16 (const WpTomlTable *self, - const char *key, int16_t *val); -gboolean wp_toml_table_get_uint16 (const WpTomlTable *self, const char *key, - uint16_t *val); -gboolean wp_toml_table_get_qualified_uint16 (const WpTomlTable *self, - const char *key, uint16_t *val); -gboolean wp_toml_table_get_int32 (const WpTomlTable *self, const char *key, - int32_t *val); -gboolean wp_toml_table_get_qualified_int32 (const WpTomlTable *self, - const char *key, int32_t *val); -gboolean wp_toml_table_get_uint32 (const WpTomlTable *self, const char *key, - uint32_t *val); -gboolean wp_toml_table_get_qualified_uint32 (const WpTomlTable *self, - const char *key, uint32_t *val); -gboolean wp_toml_table_get_int64 (const WpTomlTable *self, const char *key, - int64_t *val); -gboolean wp_toml_table_get_qualified_int64 (const WpTomlTable *self, - const char *key, int64_t *val); -gboolean wp_toml_table_get_uint64 (const WpTomlTable *self, const char *key, - uint64_t *val); -gboolean wp_toml_table_get_qualified_uint64 (const WpTomlTable *self, - const char *key, uint64_t *val); -gboolean wp_toml_table_get_double (const WpTomlTable *self, const char *key, - double *val); -gboolean wp_toml_table_get_qualified_double (const WpTomlTable *self, - const char *key, double *val); -char *wp_toml_table_get_string (const WpTomlTable *self, const char *key); -char *wp_toml_table_get_qualified_string (const WpTomlTable *self, - const char *key); -WpTomlArray *wp_toml_table_get_array (const WpTomlTable *self, const char *key); -WpTomlArray *wp_toml_table_get_qualified_array (const WpTomlTable *self, - const char *key); -WpTomlTable *wp_toml_table_get_table (const WpTomlTable *self, const char *key); -WpTomlTable *wp_toml_table_get_qualified_table (const WpTomlTable *self, - const char *key); -WpTomlTableArray *wp_toml_table_get_array_table (const WpTomlTable *self, - const char *key); -WpTomlTableArray *wp_toml_table_get_qualified_array_table ( - const WpTomlTable *self, const char *key); -typedef void (*WpTomlTableArrayForEachFunc)(const WpTomlTable *, gpointer); -void wp_toml_table_array_for_each (const WpTomlTableArray *self, - WpTomlTableArrayForEachFunc func, gpointer uder_data); - -G_END_DECLS - -#endif diff --git a/lib/wptoml/wptoml.h b/lib/wptoml/wptoml.h deleted file mode 100644 index f21b7dae..00000000 --- a/lib/wptoml/wptoml.h +++ /dev/null @@ -1,11 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -#include "array.h" -#include "table.h" -#include "file.h" diff --git a/meson.build b/meson.build index a7f13f88..5226eb0b 100644 --- a/meson.build +++ b/meson.build @@ -32,14 +32,6 @@ else wireplumber_data_dir = join_paths(get_option('prefix'), get_option('datadir'), 'wireplumber') endif -if get_option('wrap_mode') == 'nodownload' - cpptoml_dep = dependency('cpptoml') -else - cmake = import('cmake') - cpptoml = cmake.subproject('cpptoml') - cpptoml_dep = cpptoml.dependency('cpptoml') -endif - gobject_dep = dependency('gobject-2.0', version : '>= 2.58') gmodule_dep = dependency('gmodule-2.0', version : '== ' + gobject_dep.version()) gio_dep = dependency('gio-2.0', version : '== ' + gobject_dep.version()) diff --git a/subprojects/cpptoml.wrap b/subprojects/cpptoml.wrap deleted file mode 100644 index a342dcbd..00000000 --- a/subprojects/cpptoml.wrap +++ /dev/null @@ -1,4 +0,0 @@ -[wrap-git] -directory=cpptoml -url=https://github.com/skystrife/cpptoml.git -revision=v0.1.1 diff --git a/tests/meson.build b/tests/meson.build index e2a1854f..ce62cbad 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,5 +1,4 @@ subdir('wp') subdir('wplua') -subdir('wptoml') subdir('modules') subdir('examples') diff --git a/tests/wptoml/files/basic-array.toml b/tests/wptoml/files/basic-array.toml deleted file mode 100644 index 7e804fd6..00000000 --- a/tests/wptoml/files/basic-array.toml +++ /dev/null @@ -1,4 +0,0 @@ -bool-array = [true, false, false, false, false, true, false] -int64-array = [1, 2, 3, 4, 5] -double-array = [0.1, 1.1, 2.1] -str-array = ["a ", "string ", "array"] diff --git a/tests/wptoml/files/basic-table.toml b/tests/wptoml/files/basic-table.toml deleted file mode 100644 index f903b271..00000000 --- a/tests/wptoml/files/basic-table.toml +++ /dev/null @@ -1,12 +0,0 @@ -bool = true -int8 = -8 -uint8 = 8 -int16 = -16 -uint16 = 16 -int32 = -32 -uint32 = 32 -int64 = -64 -uint64 = 64 -double = 3.141592 -str = "str" -big_str = "this is a big string with special characters (!@#$%^&&*'') to make sure the wptoml library parses it correctly" diff --git a/tests/wptoml/files/nested-array.toml b/tests/wptoml/files/nested-array.toml deleted file mode 100644 index 03999fb3..00000000 --- a/tests/wptoml/files/nested-array.toml +++ /dev/null @@ -1 +0,0 @@ -nested-array = [[1, 2, 3, 4, 5], ["hello", "world"], [0.1, 1.1, 2.1]] diff --git a/tests/wptoml/files/nested-table.toml b/tests/wptoml/files/nested-table.toml deleted file mode 100644 index ea8f5391..00000000 --- a/tests/wptoml/files/nested-table.toml +++ /dev/null @@ -1,6 +0,0 @@ -[table] -key1 = 0.1 -key2 = 1284 - -[table.subtable] -key3 = "hello world" diff --git a/tests/wptoml/files/table-array.toml b/tests/wptoml/files/table-array.toml deleted file mode 100644 index d4f4a84b..00000000 --- a/tests/wptoml/files/table-array.toml +++ /dev/null @@ -1,5 +0,0 @@ -[[table-array]] -key1 = "hello" - -[[table-array]] -key1 = ", can you hear me?" diff --git a/tests/wptoml/meson.build b/tests/wptoml/meson.build deleted file mode 100644 index c34e732e..00000000 --- a/tests/wptoml/meson.build +++ /dev/null @@ -1,12 +0,0 @@ -common_deps = [gobject_dep, wptoml_dep] -common_env = [ - 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()), - 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()), -] - -test( - 'test-wptoml', - executable('test-toml', 'wptoml.c', dependencies: common_deps), - env: common_env, - workdir : meson.current_source_dir(), -) diff --git a/tests/wptoml/wptoml.c b/tests/wptoml/wptoml.c deleted file mode 100644 index af82e2ee..00000000 --- a/tests/wptoml/wptoml.c +++ /dev/null @@ -1,394 +0,0 @@ -/* WirePlumber - * - * Copyright © 2019 Collabora Ltd. - * @author Julian Bouzas <julian.bouzas@collabora.com> - * - * SPDX-License-Identifier: MIT - */ - -#include <wptoml/wptoml.h> - -#define TOML_FILE_BASIC_TABLE "files/basic-table.toml" -#define TOML_FILE_BASIC_ARRAY "files/basic-array.toml" -#define TOML_FILE_NESTED_ARRAY "files/nested-array.toml" -#define TOML_FILE_NESTED_TABLE "files/nested-table.toml" -#define TOML_FILE_TABLE_ARRAY "files/table-array.toml" - -static void -test_basic_table (void) -{ - /* Parse the file */ - const char *file_name = TOML_FILE_BASIC_TABLE; - g_autoptr (WpTomlFile) file = wp_toml_file_new (file_name); - g_assert_nonnull (file); - - /* Get the name */ - const char *name = wp_toml_file_get_name (file); - g_assert_cmpstr (name, ==, TOML_FILE_BASIC_TABLE); - - /* Get the table */ - g_autoptr (WpTomlTable) table = wp_toml_file_get_table (file); - g_assert_nonnull (table); - - /* Test contains */ - g_assert_false (wp_toml_table_contains (table, "invalid-key")); - g_assert_true (wp_toml_table_contains (table, "bool")); - - /* Test boolean */ - { - gboolean val = FALSE; - g_assert_false (wp_toml_table_get_boolean (table, "invalid-key", &val)); - g_assert_false (val); - g_assert_true (wp_toml_table_get_boolean (table, "bool", &val)); - g_assert_true (val); - } - - /* Test int8 */ - { - int8_t val = 0; - g_assert_false (wp_toml_table_get_int8 (table, "invalid-key", &val)); - g_assert_cmpint (val, ==, 0); - g_assert_true (wp_toml_table_get_int8 (table, "int8", &val)); - g_assert_cmpint (val, ==, -8); - } - - /* Test uint8 */ - { - uint8_t val = 0; - g_assert_false (wp_toml_table_get_uint8 (table, "invalid-key", &val)); - g_assert_cmpuint (val, ==, 0); - g_assert_true (wp_toml_table_get_uint8 (table, "uint8", &val)); - g_assert_cmpuint (val, ==, 8); - } - - /* Test int16 */ - { - int16_t val = 0; - g_assert_false (wp_toml_table_get_int16 (table, "invalid-key", &val)); - g_assert_cmpint (val, ==, 0); - g_assert_true (wp_toml_table_get_int16 (table, "int16", &val)); - g_assert_cmpint (val, ==, -16); - } - - /* Test uint16 */ - { - uint16_t val = 0; - g_assert_false (wp_toml_table_get_uint16 (table, "invalid-key", &val)); - g_assert_cmpuint (val, ==, 0); - g_assert_true (wp_toml_table_get_uint16 (table, "uint16", &val)); - g_assert_cmpuint (val, ==, 16); - } - - /* Test int32 */ - { - int32_t val = 0; - g_assert_false (wp_toml_table_get_int32 (table, "invalid-key", &val)); - g_assert_cmpint (val, ==, 0); - g_assert_true (wp_toml_table_get_int32 (table, "int32", &val)); - g_assert_cmpint (val, ==, -32); - } - - /* Test uint32 */ - { - uint32_t val = 0; - g_assert_false (wp_toml_table_get_uint32 (table, "invalid-key", &val)); - g_assert_cmpuint (val, ==, 0); - g_assert_true (wp_toml_table_get_uint32 (table, "uint32", &val)); - g_assert_cmpuint (val, ==, 32); - } - - /* Test int64 */ - { - int64_t val = 0; - g_assert_false (wp_toml_table_get_int64 (table, "invalid-key", &val)); - g_assert_cmpint (val, ==, 0); - g_assert_true (wp_toml_table_get_int64 (table, "int64", &val)); - g_assert_cmpint (val, ==, -64); - } - - /* Test uint64 */ - { - uint64_t val = 0; - g_assert_false (wp_toml_table_get_uint64 (table, "invalid-key", &val)); - g_assert_true (val == 0); - g_assert_true (wp_toml_table_get_uint64 (table, "uint64", &val)); - g_assert_true (val == 64); - } - - /* Test double */ - { - double val = 0.0; - g_assert_false (wp_toml_table_get_double (table, "invalid-key", &val)); - g_assert_cmpfloat_with_epsilon (val, 0.0, 0.01); - g_assert_true (wp_toml_table_get_double (table, "double", &val)); - g_assert_cmpfloat_with_epsilon (val, 3.14, 0.01); - } - - /* Test string */ - { - g_autofree char *val = wp_toml_table_get_string (table, "invalid-key"); - g_assert_null (val); - val = wp_toml_table_get_string (table, "str"); - g_assert_nonnull (val); - g_assert_cmpstr (val, ==, "str"); - } - - /* Test big string */ - { - g_autofree char *val = wp_toml_table_get_string (table, "invalid-key"); - g_assert_null (val); - val = wp_toml_table_get_string (table, "big_str"); - g_assert_nonnull (val); - g_assert_cmpstr(val, ==, "this is a big string with special " - "characters (!@#$%^&&*'') to make sure the wptoml library parses " - "it correctly"); - } -} - -static void -boolean_array_for_each (const gboolean *v, gpointer user_data) -{ - int64_t *total_trues = user_data; - g_assert_nonnull (total_trues); - - /* Test all the array values could be parsed into boolean correctly */ - g_assert_nonnull (v); - - /* Count the trues */ - if (*v) - (*total_trues)++; -} - -static void -int64_array_for_each (const int64_t *v, gpointer user_data) -{ - int64_t *total = user_data; - g_assert_nonnull (total); - - /* Test all the array values could be parsed into int64_t correctly */ - g_assert_nonnull (v); - - /* Add the value to the total */ - *total += *v; -} - -static void -double_array_for_each (const double *v, gpointer user_data) -{ - double *total = user_data; - g_assert_nonnull (total); - - /* Test all the array values could be parsed into double correctly */ - g_assert_nonnull (v); - - /* Add the value to the total */ - *total += *v; -} - -static void -string_array_for_each (const char *v, gpointer user_data) -{ - char *buffer = user_data; - g_assert_nonnull (buffer); - - /* Test all the array values could be parsed into strings correctly */ - g_assert_nonnull (v); - - /* Concatenate */ - g_strlcat(buffer, v, 256); -} - -static void -unparsable_int64_array_for_each (const int64_t *v, gpointer user_data) -{ - /* Make sure the value is null */ - g_assert_null (v); -} - -static void -test_basic_array (void) -{ - /* Parse the file and get its table */ - g_autoptr (WpTomlFile) file = wp_toml_file_new (TOML_FILE_BASIC_ARRAY); - g_assert_nonnull (file); - g_autoptr (WpTomlTable) table = wp_toml_file_get_table (file); - g_assert_nonnull (table); - - /* Test bool array */ - { - g_autoptr (WpTomlArray) a = wp_toml_table_get_array (table, "bool-array"); - g_assert_nonnull (a); - int64_t total_trues = 0; - wp_toml_array_for_each_boolean (a, boolean_array_for_each, &total_trues); - g_assert_cmpuint (total_trues, ==, 2); - } - - /* Test int64 array */ - { - g_autoptr (WpTomlArray) a = wp_toml_table_get_array (table, "int64-array"); - g_assert_nonnull (a); - int64_t total = 0; - wp_toml_array_for_each_int64 (a, int64_array_for_each, &total); - g_assert_cmpuint (total, ==, 15); - } - - /* Test double array */ - { - g_autoptr (WpTomlArray) a = wp_toml_table_get_array (table, "double-array"); - g_assert_nonnull (a); - double total = 0; - wp_toml_array_for_each_double (a, double_array_for_each, &total); - g_assert_cmpfloat_with_epsilon (total, 3.3, 0.01); - } - - /* Test string array */ - { - g_autoptr (WpTomlArray) a = wp_toml_table_get_array (table, "str-array"); - g_assert_nonnull (a); - char buffer[256] = ""; - wp_toml_array_for_each_string (a, string_array_for_each, &buffer); - g_assert_cmpstr (buffer, ==, "a string array"); - } - - /* Try to parse a string array as an int64 array */ - { - g_autoptr (WpTomlArray) a = wp_toml_table_get_array (table, "str-array"); - g_assert_nonnull (a); - wp_toml_array_for_each_int64 (a, unparsable_int64_array_for_each, NULL); - } -} - -static void -test_nested_table (void) -{ - /* Parse the file and get its table */ - g_autoptr (WpTomlFile) file = wp_toml_file_new (TOML_FILE_NESTED_TABLE); - g_assert_nonnull (file); - g_autoptr (WpTomlTable) table = wp_toml_file_get_table (file); - g_assert_nonnull (table); - - /* Get the first nested table */ - g_autoptr (WpTomlTable) table1 = wp_toml_table_get_table (table, "table"); - g_assert_nonnull (table1); - - /* Get the key1 and key2 values of the first nested table */ - double key1 = 0; - wp_toml_table_get_double (table1, "key1", &key1); - g_assert_cmpfloat_with_epsilon (key1, 0.1, 0.01); - int32_t key2 = 0; - wp_toml_table_get_int32 (table1, "key2", &key2); - g_assert_cmpint (key2, ==, 1284); - - /* Get the second nested table */ - g_autoptr (WpTomlTable) table2 = wp_toml_table_get_table (table1, "subtable"); - g_assert_nonnull (table2); - - /* Get the key3 value of the second nested table */ - g_autofree char *key3 = wp_toml_table_get_string (table2, "key3"); - g_assert_nonnull (key3); - g_assert_cmpstr (key3, ==, "hello world"); -} - -static void -nested_array_for_each (WpTomlArray *a, gpointer user_data) -{ - int *count = user_data; - g_assert_nonnull (count); - - /* Test all the array values could be parsed into arrays correctly */ - g_assert_nonnull (a); - - /* Parse the nested arrays for each type */ - switch (*count) { - case 0: { - int64_t total = 0; - wp_toml_array_for_each_int64 (a, int64_array_for_each, &total); - g_assert_cmpint (total, ==, 15); - break; - } - case 1: { - char buffer[256] = ""; - wp_toml_array_for_each_string (a, string_array_for_each, &buffer); - g_assert_cmpstr (buffer, ==, "helloworld"); - break; - } - case 2: { - double total = 0; - wp_toml_array_for_each_double (a, double_array_for_each, &total); - g_assert_cmpfloat_with_epsilon (total, 3.3, 0.01); - break; - } - default: - break; - } - - /* Increase the counter */ - (*count)++; -} - -static void -test_nested_array () -{ - /* Parse the file and get its table */ - g_autoptr (WpTomlFile) file = wp_toml_file_new (TOML_FILE_NESTED_ARRAY); - g_assert_nonnull (file); - g_autoptr (WpTomlTable) table = wp_toml_file_get_table (file); - g_assert_nonnull (table); - - /* Test nested array */ - g_autoptr (WpTomlArray) a = wp_toml_table_get_array (table, "nested-array"); - g_assert_nonnull (a); - int count = 0; - wp_toml_array_for_each_array (a, nested_array_for_each, &count); - g_assert_cmpint (count, ==, 3); -} - -static void -table_array_for_each (const WpTomlTable *table, gpointer user_data) -{ - char *buffer = user_data; - - /* Test all the array values could be parsed into a table correctly */ - g_assert_nonnull (table); - - /* Check for key1 string */ - g_autofree char *key1 = wp_toml_table_get_string (table, "key1"); - g_assert_nonnull (key1); - - /* Concatenate */ - g_strlcat(buffer, key1, 256); -} - -static void -test_table_array () -{ - /* Parse the file and get its table */ - g_autoptr (WpTomlFile) file = wp_toml_file_new (TOML_FILE_TABLE_ARRAY); - g_assert_nonnull (file); - g_autoptr (WpTomlTable) table = wp_toml_file_get_table (file); - g_assert_nonnull (table); - - /* Get the table array */ - g_autoptr (WpTomlTableArray) table_array = wp_toml_table_get_array_table ( - table, "table-array"); - g_assert_nonnull (table_array); - - /* Iterate */ - char buffer[256] = ""; - wp_toml_table_array_for_each (table_array, table_array_for_each, buffer); - g_assert_cmpstr (buffer, ==, "hello, can you hear me?"); -} - -int -main (int argc, char *argv[]) -{ - g_test_init (&argc, &argv, NULL); - - g_test_add_func ("/wptoml/basic_table", test_basic_table); - g_test_add_func ("/wptoml/basic_array", test_basic_array); - g_test_add_func ("/wptoml/nested_table", test_nested_table); - g_test_add_func ("/wptoml/nested_array", test_nested_array); - g_test_add_func ("/wptoml/table_array", test_table_array); - - return g_test_run (); -} -- GitLab