Od Androida 5.0 prawidłowe działanie stosu sieciowego na urządzeniach z Androidem jądra systemu wymagają liczby zatwierdzeń, które zostały stosunkowo niedawno wdrożone lub nawet nie doszły jeszcze do niej. Ręczne sprawdzenie lub śledzić brakujące zatwierdzenia, więc zespół Androida udostępnia testy, które wykorzystuje, aby sprawdzić, czy jądro działa zgodnie z oczekiwaniami.
Powody, dla których warto przeprowadzić testy
Te testy dotyczą 3 głównych przyczyny:
- Dokładna wersja jądra systemu Linux używana na urządzeniu to jest zwykle związane z konkretnymi urządzeniami i trudno jest stwierdzić, czy działa prawidłowo bez przeprowadzania testów.
- Forward-porting wstecznego przenoszenia poprawek jądra do różnych wersji jądra lub innych, drzewa urządzeń mogą powodować drobne problemy, których nie da się zauważyć bez przeprowadzamy testy.
- Nowe funkcje sieciowe mogą wymagać nowych funkcji jądra lub błędu jądra naprawiania błędów.
Jeśli testy nie zakończą się powodzeniem, stos sieciowy urządzenia działa nieprawidłowo, powodując problemy z łącznością widoczne dla użytkowników (np. Wi-Fi). Urządzenie prawdopodobnie nie przejdzie testu zgodności z Androidem. Testy pakietu (CTS).
Korzystanie z testów
Testy używają trybu użytkownika w trybie użytkownika do uruchamiania systemu jako proces na hoście z systemem Linux. Zobacz Tworzenie środowiska kompilacji dla odpowiednich wersji systemu operacyjnego. Platforma testowania jednostkowego uruchamia jądro z odpowiednim obrazem dysku i uruchamia testy systemu plików hosta. Testy są napisane w języku Python i wykorzystują interfejsy TAP do dla działania jądra i interfejsu API gniazda.
Kompilowanie jądra dla ARCH=um
Aby przeprowadzić testy,
jądro musi skompilować na potrzeby ARCH=um SUBARCH=x86_64
. To jest
obsługiwaną architekturę zarówno na poziomie wyższym, jak i we wspólnych drzewach jądra Androida
(np. android-4.4
). Czasem jednak
jądra systemu nie kompilują w tym trybie, ponieważ drzewa urządzeń zawierają
kodu powiązanego z konkretnym urządzeniem lub sprzętowym w popularnych plikach (np.
sys/exit.c
).
W wielu przypadkach wystarczy upewnić się, że
kod sprzętowy jest za elementem #ifdef
. Zwykle
jako #ifdef
w opcji konfiguracji, która kontroluje określone
odpowiednią dla kodu. Jeśli nie ma takiej opcji konfiguracji,
konkretnego kodu sprzętowego w #ifndef CONFIG_UML
blokach.
W
zasadniczo, za naprawę tego błędu powinien odpowiadać dostawca drzewa jądra
(np. chipsetu lub dostawcy układów SOC). Współpracujemy z producentami OEM i dostawcami, aby zapewnić
które obecne i przyszłe jądra kompilują pod kątem ARCH=um
SUBARCH=x86_64
bez konieczności wprowadzania zmian.
Przeprowadzanie testów
Terminy testów: kernel/tests/net/test
.
Zaleca się uruchamianie testów z poziomu głównej usługi AOSP, ponieważ
są najbardziej aktualne, w niektórych przypadkach funkcje jądra są niezbędne
prawidłowe działanie danej wersji Androida nie obejmuje jeszcze wszystkich testów
w danym wydaniu. Informacje o przeprowadzaniu testów znajdziesz w jądrze
plik README do testowania sieci. Ogólnie rzecz biorąc, z góry drzewa jądra uruchom polecenie:
ANDROID_TREE/kernel/tests/net/test/run_net_test.sh all_tests.sh
Zdaj testy
Testowanie Pythona w sieci jądra
pliki źródłowe zawierają komentarze, które określają zatwierdzenia jądra systemu
wymagane do zaliczenia testów. Testy powinny zakończyć się we wspólnym drzewie jądra – wszystkie
typowe gałęzie jądra android-4.4
i wyższe – w sekcji
kernel/common
.
w projekcie AOSP. Dlatego zaliczenie testów w jądrze jest kwestią po prostu
ciągłe scalanie z odpowiedniej wspólnej gałęzi jądra.
Współuczestnictwo
Zgłoś problemy
Zgłoś wszelkie problemy z testami sieci jądra w Androidzie narzędzie do rejestrowania problemów z narzędziem Komponent-Networking .
Zatwierdzenia dokumentów i dodawanie testów
Zgłoś problemy w sposób opisany powyżej i w miarę możliwości prześlij zmianę, aby rozwiązać problem. jeśli:
- Testy nie zachodzą w powszechnych jądrach jądra systemu.
- Ty znaleźć niezbędne zatwierdzenie, które nie zostało wymienione w komentarzach dotyczących źródła,
- Skonfigurowanie testów tak, aby działały w nadrzędnym jądrze, wymaga dużych zmian
- Uważasz, że testy są nadmiarowe lub że w przyszłości test się nie uda jądra systemu
- Chcesz dodać więcej testów lub zwiększyć zasięg testów.