- Add handleCreateData method to Java plugin to support creating new data - Add data type mapping to support common types like byte, word, dword, string - Implement delete_data functionality with graceful handling of missing data - Add proper error handling when conflicts are detected - Add comprehensive tests for both create_data and delete_data functionality
85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script to verify the delete_data functionality works properly.
|
|
"""
|
|
import json
|
|
import logging
|
|
import sys
|
|
import requests
|
|
import time
|
|
|
|
# Setup logging
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger("delete_data_test")
|
|
|
|
def test_delete_data():
|
|
"""Test deleting data."""
|
|
# First create data at a specific address
|
|
test_address = "08000100" # This should be a valid address in the memory map
|
|
test_type = "byte"
|
|
|
|
# Step 1: Create some data
|
|
logger.info(f"Creating test data at {test_address}")
|
|
create_url = "http://localhost:8192/data"
|
|
create_payload = {
|
|
"address": test_address,
|
|
"type": test_type,
|
|
"newName": "TEST_DELETE_ME"
|
|
}
|
|
|
|
try:
|
|
create_response = requests.post(create_url, json=create_payload)
|
|
logger.info(f"Create response: {create_response.status_code}")
|
|
logger.info(f"Create response: {create_response.text}")
|
|
|
|
create_success = create_response.status_code == 200 and json.loads(create_response.text).get("success", False)
|
|
|
|
if not create_success:
|
|
logger.warning("Failed to create test data, test may fail")
|
|
except Exception as e:
|
|
logger.error(f"Error creating test data: {e}")
|
|
|
|
# Short delay
|
|
time.sleep(1)
|
|
|
|
# Step 2: Delete the data
|
|
logger.info(f"Deleting data at {test_address}")
|
|
delete_url = "http://localhost:8192/data/delete"
|
|
delete_payload = {
|
|
"address": test_address,
|
|
"action": "delete"
|
|
}
|
|
|
|
try:
|
|
delete_response = requests.post(delete_url, json=delete_payload)
|
|
logger.info(f"Delete response: {delete_response.status_code}")
|
|
logger.info(f"Delete response: {delete_response.text}")
|
|
|
|
# Check if successful
|
|
if delete_response.status_code == 200:
|
|
response_data = json.loads(delete_response.text)
|
|
if response_data.get("success", False):
|
|
logger.info("Successfully deleted data!")
|
|
return True
|
|
|
|
logger.warning("Failed to delete data")
|
|
return False
|
|
except Exception as e:
|
|
logger.error(f"Error deleting data: {e}")
|
|
return False
|
|
|
|
def main():
|
|
"""Main entry point."""
|
|
try:
|
|
result = test_delete_data()
|
|
if result:
|
|
logger.info("Test successful!")
|
|
else:
|
|
logger.error("Test failed")
|
|
sys.exit(1)
|
|
except Exception as e:
|
|
logger.error(f"Unexpected error: {e}")
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main() |