wifi(implementation): Add unit test framework

We're going to add some non-trivial logic in wifi chip to handle
multiple chip configurations (to support devices with different
capabilities). So, adding a unit test framework in preparation
for testing those changes.

The mocks only mock legacy HAL methods which are in use during chip
configuration & interface creation/deletion.

Bug: 68775880
Test: Compiles
Change-Id: I8575df02f54656f77077d14ac9535ccc974bdff3
diff --git a/wifi/1.2/default/wifi_chip.cpp b/wifi/1.2/default/wifi_chip.cpp
index 49cf888..c4956e0 100644
--- a/wifi/1.2/default/wifi_chip.cpp
+++ b/wifi/1.2/default/wifi_chip.cpp
@@ -20,7 +20,6 @@
 #include "hidl_return_util.h"
 #include "hidl_struct_util.h"
 #include "wifi_chip.h"
-#include "wifi_feature_flags.h"
 #include "wifi_status_util.h"
 
 namespace {
@@ -103,10 +102,12 @@
 
 WifiChip::WifiChip(
     ChipId chip_id, const std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal,
-    const std::weak_ptr<mode_controller::WifiModeController> mode_controller)
+    const std::weak_ptr<mode_controller::WifiModeController> mode_controller,
+    const std::weak_ptr<feature_flags::WifiFeatureFlags> feature_flags)
     : chip_id_(chip_id),
       legacy_hal_(legacy_hal),
       mode_controller_(mode_controller),
+      feature_flags_(feature_flags),
       is_valid_(true),
       current_mode_id_(kInvalidModeId),
       debug_ring_buffer_cb_registered_(false) {}
@@ -404,7 +405,7 @@
     const IWifiChip::ChipIfaceCombinationLimit
         sta_chip_iface_combination_limit_1 = {{IfaceType::STA}, 1};
     IWifiChip::ChipIfaceCombinationLimit sta_chip_iface_combination_limit_2;
-    if (WifiFeatureFlags::wifiHidlFeatureAware) {
+    if (feature_flags_.lock()->isAwareSupported()) {
         sta_chip_iface_combination_limit_2 = {{IfaceType::P2P, IfaceType::NAN},
                                               1};
     } else {
@@ -572,7 +573,7 @@
 
 std::pair<WifiStatus, sp<IWifiNanIface>> WifiChip::createNanIfaceInternal() {
     // Only 1 of NAN or P2P iface can be active at a time.
-    if (WifiFeatureFlags::wifiHidlFeatureAware) {
+    if (feature_flags_.lock()->isAwareSupported()) {
         if (current_mode_id_ != kStaChipModeId || !nan_ifaces_.empty() ||
             !p2p_ifaces_.empty()) {
             return {createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE), {}};