diff options
author | Frantisek Sumsal <frantisek@sumsal.cz> | 2021-04-02 19:51:44 +0200 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@gmail.com> | 2021-04-05 15:41:05 +0200 |
commit | 34fde9f898f63096262d95c61d75db85dabe6fe4 (patch) | |
tree | 058e62b9d8968dd1f0ad66899613dc0fb5234499 | |
parent | fuzzer: add a test case for #19178 (diff) | |
download | systemd-34fde9f898f63096262d95c61d75db85dabe6fe4.tar.xz systemd-34fde9f898f63096262d95c61d75db85dabe6fe4.zip |
test: check if the unit file fuzzer corpora is up to date
This follows a similar pattern we already have in place for
networkd-related directives.
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives-all.service | 949 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.automount | 5 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.mount | 203 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.path | 10 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.scope | 59 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.service | 941 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.slice | 52 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.socket | 253 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.swap | 197 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives.timer | 17 | ||||
-rwxr-xr-x | tools/check-directives.sh | 60 |
12 files changed, 1958 insertions, 790 deletions
diff --git a/meson.build b/meson.build index 6a474afdac..2d44e7948d 100644 --- a/meson.build +++ b/meson.build @@ -3515,7 +3515,7 @@ check_directives_sh = find_program('tools/check-directives.sh') if want_tests != 'false' test('check-directives', check_directives_sh, - args : project_source_root) + args : [project_source_root, project_build_root]) endif ############################################################ diff --git a/test/fuzz/fuzz-unit-file/directives-all.service b/test/fuzz/fuzz-unit-file/directives-all.service new file mode 100644 index 0000000000..310dbd6add --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives-all.service @@ -0,0 +1,949 @@ +service +Accept= +AccuracySec= +After= +Alias= +AllowedCPUs= +AllowedMemoryNodes= +AllowIsolate= +Also= +AmbientCapabilities= +AssertACPower= +AssertArchitecture= +AssertCapability= +AssertControlGroupController= +AssertDirectoryNotEmpty= +AssertFileIsExecutable= +AssertFileNotEmpty= +AssertFirstBoot= +AssertGroup= +AssertHost= +AssertKernelCommandLine= +AssertKernelVersion= +AssertNeedsUpdate= +AssertPathExists= +AssertPathExistsGlob= +AssertPathIsDirectory= +AssertPathIsMountPoint= +AssertPathIsReadWrite= +AssertPathIsSymbolicLink= +AssertSecurity= +AssertUser= +AssertVirtualization= +Backlog= +Before= +BindIPv6Only= +BindPaths= +BindReadOnlyPaths= +BindToDevice= +BindsTo= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +Broadcast= +BusName= +CoredumpFilter= +CPUAccounting= +CPUQuota= +CPUShares= +CPUWeight= +CapabilityBoundingSet= +CollectMode= +ConditionACPower= +ConditionArchitecture= +ConditionCapability= +ConditionControlGroupController= +ConditionDirectoryNotEmpty= +ConditionFileIsExecutable= +ConditionFileNotEmpty= +ConditionFirstBoot= +ConditionGroup= +ConditionHost= +ConditionKernelCommandLine= +ConditionKernelVersion= +ConditionNeedsUpdate= +ConditionPathExists= +ConditionPathExistsGlob= +ConditionPathIsDirectory= +ConditionPathIsMountPoint= +ConditionPathIsReadWrite= +ConditionPathIsSymbolicLink= +ConditionSecurity= +ConditionUser= +ConditionVirtualization= +Conflicts= +DefaultDependencies= +DefaultInstance= +DeferAcceptSec= +Delegate= +Description= +DeviceAllow= +DevicePolicy= +DirectoryMode= +DirectoryNotEmpty= +Documentation= +DynamicUser= +ExecPaths= +ExecReload= +ExecCondition= +ExecStart= +ExecStartPost= +ExecStartPre= +ExecStop= +ExecStopPost= +ExecStopPre= +ExitType= +FailureAction= +FileDescriptorName= +FileDescriptorStoreMax= +ForceUnmount= +FreeBind= +Group= +GuessMainPID= +IOAccounting= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPCNamespacePath= +IPTOS= +IPTTL= +IgnoreOnIsolate= +JobRunningTimeoutSec= +JobTimeoutAction= +JobTimeoutRebootArgument= +JobTimeoutSec= +JoinsNamespaceOf= +KeepAlive= +KeepAliveIntervalSec= +KeepAliveProbes= +KeepAliveTimeSec= +KillMode= +KillSignal= +LazyUnmount= +ListenDatagram= +ListenFIFO= +ListenMessageQueue= +#ListenNetlink= +ListenSequentialPacket= +ListenSpecial= +ListenStream= +ListenUSBFunction= +MakeDirectory= +Mark= +MaxConnections= +MaxConnectionsPerSource= +ManagedOOMSwap= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimitPercent= +ManagedOOMPreference= +MemoryAccounting= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemorySwapMax= +MessageQueueMaxMessages= +MessageQueueMessageSize= +MountAPIVFS= +NetworkNamespacePath= +NoDelay= +NoExecPaths= +NoNewPrivileges= +NonBlocking= +NotifyAccess= +OnActiveSec= +OnBootSec= +OnCalendar= +OnFailure= +OnFailureJobMode= +OnStartupSec= +OnUnitActiveSec= +OnUnitInactiveSec= +Options= +PAMName= +PIDFile= +PartOf= +PassCredentials= +PassSecurity= +PassPacketInfo= +PathChanged= +PathExists= +PathExistsGlob= +PathModified= +PermissionsStartOnly= +Persistent= +PipeSize= +Priority= +PropagatesReloadTo= +RandomizedDelaySec= +FixedRandomDelay= +RebootArgument= +ReceiveBuffer= +RefuseManualStart= +RefuseManualStop= +ReloadPropagatedFrom= +RemainAfterElapse= +RemainAfterExit= +RemoveOnStop= +RequiredBy= +Requires= +RequiresMountsFor= +Requisite= +Restart= +RestartForceExitStatus= +RestartKillSignal= +RestartPreventExitStatus= +RestartSec= +ReusePort= +RootDirectory= +RootDirectoryStartOnly= +RootImage= +RootHash= +RootHashSignature= +RootVerity= +ExtensionImages= +RuntimeMaxSec= +SELinuxContextFromNet= +SecureBits= +SendBuffer= +SendSIGHUP= +SendSIGKILL= +Service= +Slice= +SloppyOptions= +SmackLabel= +SmackLabelIPIn= +SmackLabelIPOut= +SocketGroup= +SocketMode= +SocketProtocol= +SocketUser= +Sockets= +SourcePath= +StartLimitAction= +StartLimitBurst= +StartLimitIntervalSec= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= +StopWhenUnneeded= +SuccessAction= +SuccessExitStatus= +SupplementaryGroups= +Symlinks= +TCPCongestion= +TasksAccounting= +TasksMax= +TimeoutIdleSec= +TimeoutSec= +TimeoutStartSec= +TimeoutStopSec= +TimeoutAbortSec= +Transparent= +TriggerLimitBurst= +TriggerLimitIntervalSec= +Type= +USBFunctionDescriptors= +USBFunctionStrings= +Unit= +User= +WakeSystem= +WantedBy= +Wants= +WatchdogSec= +What= +Where= +WorkingDirectory= +Writable= +fsck.mode= +fsck.repair= +fstab= +locale.LANG= +locale.LANGUAGE= +locale.LC_ADDRESS= +locale.LC_COLLATE= +locale.LC_CTYPE= +locale.LC_IDENTIFICATION= +locale.LC_MEASUREMENT= +locale.LC_MESSAGES= +locale.LC_MONETARY= +locale.LC_NAME= +locale.LC_NUMERIC= +locale.LC_PAPER= +locale.LC_TELEPHONE= +locale.LC_TIME= +luks.crypttab= +luks.key= +luks.name= +luks.options= +luks.uuid= +luks= +modules_load= +mount.usr= +mount.usrflags= +mount.usrfstype= +net.ifnames= +plymouth.enable= +quotacheck.mode= +rd.fstab= +rd.luks.crypttab= +rd.luks.key= +rd.luks.name= +rd.luks.options= +rd.luks.uuid= +rd.luks= +rd.modules_load= +rd.systemd.gpt_auto= +rd.systemd.unit= +rd.systemd.verity= +rd.udev.children_max= +rd.udev.event_timeout= +rd.udev.exec_delay= +rd.udev.log_level= +resume= +resumeflags= +root= +rootflags= +rootfstype= +roothash= +systemd.default_standard_error= +systemd.default_standard_output= +systemd.default_timeout_start_sec= +systemd.firstboot= +systemd.gpt_auto= +systemd.journald.forward_to_console= +systemd.journald.forward_to_kmsg= +systemd.journald.forward_to_syslog= +systemd.journald.forward_to_wall= +systemd.log_level= +systemd.log_location= +systemd.log_target= +systemd.machine_id= +systemd.mask= +systemd.restore_state= +systemd.service_watchdogs= +systemd.setenv= +systemd.unit= +systemd.verity= +systemd.verity_root_data= +systemd.verity_root_hash= +systemd.verity_root_options= +systemd.volatile= +systemd.wants= +systemd.watchdog_device= +udev.children_max= +udev.event_timeout= +udev.exec_delay= +udev.log_level= +vconsole.font= +vconsole.font_map= +vconsole.font_unimap= +vconsole.keymap= +vconsole.keymap_toggle= +ID_MODEL= +ID_MODEL_FROM_DATABASE= +SYSTEMD_ALIAS= +SYSTEMD_MOUNT_OPTIONS= +SYSTEMD_MOUNT_WHERE= +SYSTEMD_READY= +SYSTEMD_USER_WANTS= +SYSTEMD_WANTS= +link_priority= +static_node= +string_escape= +ARP= +ARPAllTargets= +ARPIPTargets= +ARPIntervalSec= +ARPValidate= +ActiveSlave= +AdSelect= +Address= +AddressAutoconfiguration= +AgeingTimeSec= +Alias= +AllSlavesActive= +AllowLocalRemote= +AllowPortToBeRoot= +AllowedIPs= +Anonymize= +Architecture= +AutoJoin= +AutoNegotiation= +BindCarrier= +BitsPerSecond= +Bond= +Bridge= +Broadcast= +Cache= +CacheFromLocalhost= +ClientIdentifier= +ConfigureWithoutCarrier= +CopyDSCP= +Cost= +CriticalConnection= +DHCP= +DHCPServer= +DNS= +DNSLifetimeSec= +DNSSEC= +DNSSECNegativeTrustAnchors= +DNSStubListener= +DNSStubListenerExtra= +DUIDRawData= +DUIDType= +DefaultLeaseTimeSec= +DefaultPVID= +Description= +Destination= +DestinationPort= +DiscoverPathMTU= +Domains= +DownDelaySec= +Driver= +Duplex= +DuplicateAddressDetection= +EgressUntagged= +EmitDNS= +EmitDomains= +EmitLLDP= +EmitNTP= +EmitRouter= +EmitTimezone= +EncapsulationLimit= +Endpoint= +FDBAgeingSec= +FailOverMACPolicy= +FallbackDNS= +FallbackNTP= +FastLeave= +FirewallMark= +Flags= +FlowLabel= +ForwardDelaySec= +From= +FwMark= +GVRP= +Gateway= +GatewayOnLink= +GenericReceiveOffload= +GenericSegmentationOffload= +GratuitousARP= +Group= +GroupForwardMask= +GroupPolicyExtension= +HairPin= +MulticastToUnicast= +HelloTimeSec= +HomeAddress= +Host= +Hostname= +IAID= +IPForward= +IPMasquerade= +IPv4LLRoute= +IPv4ProxyARP= +IPv6AcceptRA= +IPv6DuplicateAddressDetection= +IPv6FlowLabel= +IPv6HopLimit= +IPv6Preference= +IPv6PrefixDelegation= +IPv6PrivacyExtensions= +IPv6ProxyNDP= +IPv6ProxyNDPAddress= +IPv6Token= +Id= +IncomingInterface= +Independent= +InitialAdvertisedReceiveWindow= +InitialCongestionWindow= +InputKey= +InvertRule= +KernelCommandLine= +KernelVersion= +Key= +Kind= +L2MissNotification= +L3MissNotification= +LACPTransmitRate= +LLDP= +LLMNR= +Label= +LargeReceiveOffload= +LearnPacketIntervalSec= +LinkLocalAddressing= +ListenPort= +Local= +LooseBinding= +MACAddress= +MACAddressPolicy= +MACVLAN= +MIIMonitorSec= +MTUBytes= +MVRP= +MacLearning= +ManageTemporaryAddress= +Managed= +MaxAgeSec= +MaxLeaseTimeSec= +MaximumFDBEntries= +Metric= +MinLinks= +Mode= +MultiQueue= +MulticastDNS= +MulticastQuerier= +MulticastSnooping= +NTP= +Name= +NamePolicy= +OnLink= +OneQueue= +OriginalName= +OtherInformation= +OutgoingInterface= +OutputKey= +PVID= +PacketInfo= +PacketsPerSlave= +Path= +Peer= +PersistentKeepalive= +PollIntervalMaxSec= +PollIntervalMinSec= +PoolOffset= +PoolSize= +Port= +PortRange= +PreferredLifetime= +PreferredLifetimeSec= +PreferredSource= +Prefix= +PrefixRoute= +PresharedKey= +PrimaryReselectPolicy= +PrimarySlave= +Priority= +PrivateKey= +Protocol= +PublicKey= +QuickAck= +RapidCommit= +ReduceARPProxy= +Remote= +RemoteChecksumRx= +RemoteChecksumTx= +ReorderHeader= +RequestBroadcast= +RequiredForOnline= +ResendIGMP= +RootDistanceMaxSec= +RouteMetric= +RouteShortCircuit= +RouteTable= +RouterLifetimeSec= +RouterPreference= +STP= +Scope= +SendHostname= +Source= +SuppressPrefixLength= +TCP6SegmentationOffload= +TCPSegmentationOffload= +TOS= +TTL= +Table= +Timezone= +To= +TransmitHashPolicy= +Tunnel= +TxtData= +TxtText= +Type= +TypeOfService= +UDP6ZeroChecksumRx= +UDP6ZeroChecksumTx= +UDPChecksum= +UDPSegmentationOffload= +UnicastFlood= +Unmanaged= +UpDelaySec= +UseBPDU= +UseDNS= +UseDomains= +UseHostname= +UseMTU= +UseNTP= +UseRoutes= +UseTimezone= +User= +VLAN= +VLANFiltering= +VLANId= +VNetHeader= +VRF= +VXLAN= +ValidLifetimeSec= +VendorClassIdentifier= +Virtualization= +WakeOnLan= +Weight= +CODE_FILE= +CODE_FUNC= +CODE_LINE= +COREDUMP_UNIT= +COREDUMP_USER_UNIT= +ERRNO= +MESSAGE= +MESSAGE_ID= +OBJECT_AUDIT_LOGINUID= +OBJECT_AUDIT_SESSION= +OBJECT_CMDLINE= +OBJECT_COMM= +OBJECT_EXE= +OBJECT_GID= +OBJECT_PID= +OBJECT_SYSTEMD_CGROUP= +OBJECT_SYSTEMD_OWNER_UID= +OBJECT_SYSTEMD_SESSION= +OBJECT_SYSTEMD_UNIT= +OBJECT_SYSTEMD_USER_UNIT= +OBJECT_UID= +PRIORITY= +SYSLOG_FACILITY= +SYSLOG_IDENTIFIER= +SYSLOG_PID= +_AUDIT_LOGINUID= +_AUDIT_SESSION= +_BOOT_ID= +_CAP_EFFECTIVE= +_CMDLINE= +_COMM= +_EXE= +_GID= +_HOSTNAME= +_KERNEL_DEVICE= +_KERNEL_SUBSYSTEM= +_LINE_BREAK= +_MACHINE_ID= +_PID= +_SELINUX_CONTEXT= +_SOURCE_REALTIME_TIMESTAMP= +_STREAM_ID= +_SYSTEMD_CGROUP= +_SYSTEMD_INVOCATION_ID= +_SYSTEMD_OWNER_UID= +_SYSTEMD_SESSION= +_SYSTEMD_SLICE= +_SYSTEMD_UNIT= +_SYSTEMD_USER_UNIT= +_TRANSPORT= +_UDEV_DEVLINK= +_UDEV_DEVNODE= +_UDEV_SYSNAME= +_UID= +__CURSOR= +__MONOTONIC_TIMESTAMP= +__REALTIME_TIMESTAMP= +class= +type= +cipher= +hash= +header= +key-slot= +keyfile-offset= +keyfile-size= +offset= +size= +skip= +tcrypt-keyfile= +timeout= +tries= +x-systemd.after= +x-systemd.before= +x-systemd.device-timeout= +x-systemd.idle-timeout= +x-systemd.mount-timeout= +x-systemd.requires-mounts-for= +x-systemd.requires= +CPUAffinity= +CapabilityBoundingSet= +CrashChangeVT= +CrashReboot= +CrashShell= +CtrlAltDelBurstAction= +DefaultBlockIOAccounting= +DefaultCPUAccounting= +DefaultEnvironment= +DefaultIPAccounting= +DefaultLimitAS= +DefaultLimitCORE= +DefaultLimitCPU= +DefaultLimitDATA= +DefaultLimitFSIZE= +DefaultLimitLOCKS= +DefaultLimitMEMLOCK= +DefaultLimitMSGQUEUE= +DefaultLimitNICE= +DefaultLimitNOFILE= +DefaultLimitNPROC= +DefaultLimitRSS= +DefaultLimitRTPRIO= +DefaultLimitRTTIME= +DefaultLimitSIGPENDING= +DefaultLimitSTACK= +DefaultMemoryAccounting= +DefaultRestartSec= +DefaultStandardError= +DefaultStandardOutput= +DefaultStartLimitBurst= +DefaultStartLimitIntervalSec= +DefaultTasksAccounting= +DefaultTasksMax= +DefaultTimeoutStartSec= +DefaultTimeoutStopSec= +DefaultTimeoutAbortSec= +DefaultTimerAccuracySec= +DumpCore= +HibernateMode= +HibernateState= +HybridSleepMode= +HybridSleepState= +LogColor= +LogLevel= +LogLocation= +LogTarget= +RuntimeWatchdogSec= +ShowStatus= +RebootWatchdogSec= +ShutdownWatchdogSec= +KExecWatchdogSec= +SuspendMode= +SuspendState= +SystemCallArchitectures= +TimerSlackNSec= +WatchdogDevice= +-N= +-c= +-e= +-t= +ANSI_COLOR= +AppArmorProfile= +BUG_REPORT_URL= +BUILD_ID= +Bind= +BindReadOnly= +Boot= +Bridge= +CHASSIS= +CPE_NAME= +CPUAffinity= +CPUSchedulingPolicy= +CPUSchedulingPriority= +CPUSchedulingResetOnFork= +CacheDirectory= +CacheDirectoryMode= +Capability= +Compress= +ConfigurationDirectory= +ConfigurationDirectoryMode= +DEPLOYMENT= +DropCapability= +Environment= +EnvironmentFile= +ExternalSizeMax= +FONT= +FONT_MAP= +FONT_UNIMAP= +ForwardToConsole= +ForwardToKMsg= +ForwardToSyslog= +ForwardToWall= +HOME_URL= +HandleHibernateKey= +HandleLidSwitch= +HandleLidSwitchDocked= +HandleLidSwitchExternalPower= +HandlePowerKey= +HandleSuspendKey= +HibernateKeyIgnoreInhibited= +HoldoffTimeoutSec= +ICON_NAME= +ID= +ID_LIKE= +IOSchedulingClass= +IOSchedulingPriority= +IPVLAN= +IdleAction= +IdleActionSec= +IgnoreSIGPIPE= +InaccessiblePaths= +InhibitDelayMaxSec= +InhibitorsMax= +Interface= +JournalSizeMax= +KEYMAP= +KEYMAP_TOGGLE= +KeepFree= +KeyringMode= +ProtectProc= +ProcSubset= +KillExcludeUsers= +KillOnlyUsers= +KillSignal= +WatchdogSignal= +KillUserProcesses= +LOCATION= +LidSwitchIgnoreInhibited= +LimitAS= +LimitCORE= +LimitCPU= +LimitDATA= +LimitFSIZE= +LimitLOCKS= +LimitMEMLOCK= +LimitMSGQUEUE= +LimitNICE= +LimitNOFILE= +LimitNPROC= +LimitRSS= +LimitRTPRIO= +LimitRTTIME= +LimitSIGPENDING= +LimitSTACK= +LineMax= +LockPersonality= +LogExtraFields= +LogLevelMax= +LogRateLimitIntervalSec= +LogRateLimitBurst= +LogsDirectory= +LogsDirectoryMode= +MACVLAN= +MachineID= +MaxFileSec= +MaxLevelConsole= +MaxLevelKMsg= +MaxLevelStore= +MaxLevelSyslog= +MaxLevelWall= +MaxRetentionSec= +MaxUse= +MemoryDenyWriteExecute= +MountFlags= +NAME= +NAutoVTs= +Nice= +NoNewPrivileges= +NotifyReady= +OOMScoreAdjust= +Overlay= +OverlayReadOnly= +PRETTY_HOSTNAME= +PRETTY_NAME= +PRIVACY_POLICY_URL= +Parameters= +PassEnvironment= +Personality= +PivotRoot= +Port= +PowerKeyIgnoreInhibited= +Private= +PrivateIPC= +PrivateDevices= +PrivateNetwork= +PrivateTmp= +PrivateUsers= +PrivateUsersChown= +ProcessSizeMax= +ProcessTwo= +ProtectControlGroups= +ProtectHome= +ProtectKernelModules= +ProtectKernelTunables= +ProtectSystem= +RateLimitBurst= +RateLimitIntervalSec= +ReadKMsg= +ReadOnly= +ReadOnlyPaths= +ReadWriteOnly= +ReadWritePaths= +RemoveIPC= +ReserveVT= +RestrictAddressFamilies= +RestrictNamespaces= +RestrictRealtime= +RestrictSUIDSGID= +RuntimeDirectory= +RuntimeDirectoryInodesMax= +RuntimeDirectoryMode= +RuntimeDirectoryPreserve= +RuntimeDirectorySize= +RuntimeKeepFree= +RuntimeMaxFileSize= +RuntimeMaxFiles= +RuntimeMaxUse= +SELinuxContext= +SUPPORT_URL= +Seal= +ServerCertificateFile= +ServerKeyFile= +SessionsMax= +SmackProcessLabel= +SplitMode= +StandardError= +StandardInput= +StandardInputData= +StandardInputText= +StandardOutput= +StateDirectory= +StateDirectoryMode= +Storage= +SuspendKeyIgnoreInhibited= +SyncIntervalSec= +SyslogFacility= +SyslogIdentifier= +SyslogLevel= +SyslogLevelPrefix= +SystemCallArchitectures= +SystemCallErrorNumber= +SystemCallFilter= +SystemKeepFree= +SystemMaxFileSize= +SystemMaxFiles= +SystemMaxUse= +TTYPath= +TTYReset= +TTYVHangup= +TTYVTDisallocate= +TemporaryFileSystem= +TimerSlackNSec= +TrustedCertificateFile= +UMask= +URL= +UnsetEnvironment= +User= +UserTasksMax= +UtmpIdentifier= +UtmpMode= +VARIANT= +VARIANT_ID= +VERSION= +VERSION_CODENAME= +VERSION_ID= +VirtualEthernet= +VirtualEthernetExtra= +Volatile= +WorkingDirectory= +Zone= diff --git a/test/fuzz/fuzz-unit-file/directives.automount b/test/fuzz/fuzz-unit-file/directives.automount new file mode 100644 index 0000000000..70772ba06d --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.automount @@ -0,0 +1,5 @@ +automount +[Automount] +DirectoryMode= +TimeoutIdleSec= +Where= diff --git a/test/fuzz/fuzz-unit-file/directives.mount b/test/fuzz/fuzz-unit-file/directives.mount new file mode 100644 index 0000000000..4cc64a96b6 --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.mount @@ -0,0 +1,203 @@ +mount +[Mount] +AllowedCPUs= +AllowedMemoryNodes= +AmbientCapabilities= +AppArmorProfile= +BindPaths= +BindReadOnlyPaths= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +CPUAccounting= +CPUAffinity= +CPUQuota= +CPUQuotaPeriodSec= +CPUSchedulingPolicy= +CPUSchedulingPriority= +CPUSchedulingResetOnFork= +CPUShares= +CPUWeight= +CacheDirectory= +CacheDirectoryMode= +Capabilities= +CapabilityBoundingSet= +ConfigurationDirectory= +ConfigurationDirectoryMode= +CoredumpFilter= +DefaultMemoryLow= +DefaultMemoryMin= +Delegate= +DeviceAllow= +DevicePolicy= +DirectoryMode= +DisableControllers= +DynamicUser= +Environment= +EnvironmentFile= +ExecPaths= +ExtensionImages= +FinalKillSignal= +ForceUnmount= +Group= +IOAccounting= +IODeviceLatencyTargetSec= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= +IOSchedulingClass= +IOSchedulingPriority= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPCNamespacePath= +IPEgressFilterPath= +IPIngressFilterPath= +IgnoreSIGPIPE= +InaccessibleDirectories= +InaccessiblePaths= +KeyringMode= +KillMode= +KillSignal= +LazyUnmount= +LimitAS= +LimitCORE= +LimitCPU= +LimitDATA= +LimitFSIZE= +LimitLOCKS= +LimitMEMLOCK= +LimitMSGQUEUE= +LimitNICE= +LimitNOFILE= +LimitNPROC= +LimitRSS= +LimitRTPRIO= +LimitRTTIME= +LimitSIGPENDING= +LimitSTACK= +LoadCredential= +LockPersonality= +LogExtraFields= +LogLevelMax= +LogNamespace= +LogRateLimitBurst= +LogRateLimitIntervalSec= +LogsDirectory= +LogsDirectoryMode= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimit= +ManagedOOMPreference= +ManagedOOMSwap= +MemoryAccounting= +MemoryDenyWriteExecute= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemoryMin= +MemorySwapMax= +MountAPIVFS= +MountFlags= +MountImages= +NUMAMask= +NUMAPolicy= +NetClass= +NetworkNamespacePath= +Nice= +NoExecPaths= +NoNewPrivileges= +OOMScoreAdjust= +Options= +PAMName= +PassEnvironment= +Personality= +PrivateDevices= +PrivateIPC= +PrivateMounts= +PrivateNetwork= +PrivateTmp= +PrivateUsers= +ProcSubset= +ProtectClock= +ProtectControlGroups= +ProtectHome= +ProtectHostname= +ProtectKernelLogs= +ProtectKernelModules= +ProtectKernelTunables= +ProtectProc= +ProtectSystem= +ReadOnlyDirectories= +ReadOnlyPaths= +ReadWriteDirectories= +ReadWriteOnly= +ReadWritePaths= +RemoveIPC= +RestartKillSignal= +RestrictAddressFamilies= +RestrictNamespaces= +RestrictRealtime= +RestrictSUIDSGID= +RootDirectory= +RootHash= +RootHashSignature= +RootImage= +RootImageOptions= +RootVerity= +RuntimeDirectory= +RuntimeDirectoryMode= +RuntimeDirectoryPreserve= +SELinuxContext= +SecureBits= +SendSIGHUP= +SendSIGKILL= +SetCredential= +Slice= +SloppyOptions= +SmackProcessLabel= +StandardError= +StandardInput= +StandardInputData= +StandardInputText= +StandardOutput= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= +StateDirectory= +StateDirectoryMode= +SupplementaryGroups= +SyslogFacility= +SyslogIdentifier= +SyslogLevel= +SyslogLevelPrefix= +SystemCallArchitectures= +SystemCallErrorNumber= +SystemCallFilter= +SystemCallLog= +TTYPath= +TTYReset= +TTYVHangup= +TTYVTDisallocate= +TasksAccounting= +TasksMax= +TemporaryFileSystem= +TimeoutCleanSec= +TimeoutSec= +TimerSlackNSec= +Type= +UMask= +UnsetEnvironment= +User= +UtmpIdentifier= +UtmpMode= +WatchdogSignal= +What= +Where= +WorkingDirectory= diff --git a/test/fuzz/fuzz-unit-file/directives.path b/test/fuzz/fuzz-unit-file/directives.path new file mode 100644 index 0000000000..213beff0f1 --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.path @@ -0,0 +1,10 @@ +path +[Path] +DirectoryMode= +DirectoryNotEmpty= +MakeDirectory= +PathChanged= +PathExists= +PathExistsGlob= +PathModified= +Unit= diff --git a/test/fuzz/fuzz-unit-file/directives.scope b/test/fuzz/fuzz-unit-file/directives.scope index d0e194c371..0af372f7ca 100644 --- a/test/fuzz/fuzz-unit-file/directives.scope +++ b/test/fuzz/fuzz-unit-file/directives.scope @@ -1,2 +1,61 @@ scope +[Scope] +AllowedCPUs= +AllowedMemoryNodes= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +CPUAccounting= +CPUQuota= +CPUQuotaPeriodSec= +CPUShares= +CPUWeight= +DefaultMemoryLow= +DefaultMemoryMin= +Delegate= +DeviceAllow= +DevicePolicy= +DisableControllers= +FinalKillSignal= +IOAccounting= +IODeviceLatencyTargetSec= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPEgressFilterPath= +IPIngressFilterPath= +KillMode= +KillSignal= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimit= +ManagedOOMPreference= +ManagedOOMSwap= +MemoryAccounting= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemoryMin= +MemorySwapMax= +NetClass= +RestartKillSignal= RuntimeMaxSec= +SendSIGHUP= +SendSIGKILL= +Slice= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= +TasksAccounting= +TasksMax= +TimeoutStopSec= +WatchdogSignal= diff --git a/test/fuzz/fuzz-unit-file/directives.service b/test/fuzz/fuzz-unit-file/directives.service index 310dbd6add..ea3c93d93d 100644 --- a/test/fuzz/fuzz-unit-file/directives.service +++ b/test/fuzz/fuzz-unit-file/directives.service @@ -1,18 +1,14 @@ service -Accept= -AccuracySec= +[Unit] After= -Alias= -AllowedCPUs= -AllowedMemoryNodes= AllowIsolate= -Also= -AmbientCapabilities= AssertACPower= AssertArchitecture= +AssertCPUs= AssertCapability= AssertControlGroupController= AssertDirectoryNotEmpty= +AssertEnvironment= AssertFileIsExecutable= AssertFileNotEmpty= AssertFirstBoot= @@ -20,42 +16,29 @@ AssertGroup= AssertHost= AssertKernelCommandLine= AssertKernelVersion= +AssertMemory= AssertNeedsUpdate= AssertPathExists= AssertPathExistsGlob= AssertPathIsDirectory= +AssertPathIsEncrypted= AssertPathIsMountPoint= AssertPathIsReadWrite= AssertPathIsSymbolicLink= AssertSecurity= AssertUser= AssertVirtualization= -Backlog= Before= -BindIPv6Only= -BindPaths= -BindReadOnlyPaths= -BindToDevice= +BindTo= BindsTo= -BlockIOAccounting= -BlockIODeviceWeight= -BlockIOReadBandwidth= -BlockIOWeight= -BlockIOWriteBandwidth= -Broadcast= -BusName= -CoredumpFilter= -CPUAccounting= -CPUQuota= -CPUShares= -CPUWeight= -CapabilityBoundingSet= CollectMode= ConditionACPower= ConditionArchitecture= +ConditionCPUs= ConditionCapability= ConditionControlGroupController= ConditionDirectoryNotEmpty= +ConditionEnvironment= ConditionFileIsExecutable= ConditionFileNotEmpty= ConditionFirstBoot= @@ -63,10 +46,12 @@ ConditionGroup= ConditionHost= ConditionKernelCommandLine= ConditionKernelVersion= +ConditionMemory= ConditionNeedsUpdate= ConditionPathExists= ConditionPathExistsGlob= ConditionPathIsDirectory= +ConditionPathIsEncrypted= ConditionPathIsMountPoint= ConditionPathIsReadWrite= ConditionPathIsSymbolicLink= @@ -75,736 +60,124 @@ ConditionUser= ConditionVirtualization= Conflicts= DefaultDependencies= -DefaultInstance= -DeferAcceptSec= -Delegate= Description= -DeviceAllow= -DevicePolicy= -DirectoryMode= -DirectoryNotEmpty= Documentation= -DynamicUser= -ExecPaths= -ExecReload= -ExecCondition= -ExecStart= -ExecStartPost= -ExecStartPre= -ExecStop= -ExecStopPost= -ExecStopPre= -ExitType= FailureAction= -FileDescriptorName= -FileDescriptorStoreMax= -ForceUnmount= -FreeBind= -Group= -GuessMainPID= -IOAccounting= -IODeviceWeight= -IOReadBandwidthMax= -IOReadIOPSMax= -IOWeight= -IOWriteBandwidthMax= -IOWriteIOPSMax= -IPAccounting= -IPAddressAllow= -IPAddressDeny= -IPCNamespacePath= -IPTOS= -IPTTL= +FailureActionExitStatus= IgnoreOnIsolate= +IgnoreOnSnapshot= JobRunningTimeoutSec= JobTimeoutAction= JobTimeoutRebootArgument= JobTimeoutSec= JoinsNamespaceOf= -KeepAlive= -KeepAliveIntervalSec= -KeepAliveProbes= -KeepAliveTimeSec= -KillMode= -KillSignal= -LazyUnmount= -ListenDatagram= -ListenFIFO= -ListenMessageQueue= -#ListenNetlink= -ListenSequentialPacket= -ListenSpecial= -ListenStream= -ListenUSBFunction= -MakeDirectory= -Mark= -MaxConnections= -MaxConnectionsPerSource= -ManagedOOMSwap= -ManagedOOMMemoryPressure= -ManagedOOMMemoryPressureLimitPercent= -ManagedOOMPreference= -MemoryAccounting= -MemoryHigh= -MemoryLimit= -MemoryLow= -MemoryMax= -MemorySwapMax= -MessageQueueMaxMessages= -MessageQueueMessageSize= -MountAPIVFS= -NetworkNamespacePath= -NoDelay= -NoExecPaths= -NoNewPrivileges= -NonBlocking= -NotifyAccess= -OnActiveSec= -OnBootSec= -OnCalendar= OnFailure= +OnFailureIsolate= OnFailureJobMode= -OnStartupSec= -OnUnitActiveSec= -OnUnitInactiveSec= -Options= -PAMName= -PIDFile= PartOf= -PassCredentials= -PassSecurity= -PassPacketInfo= -PathChanged= -PathExists= -PathExistsGlob= -PathModified= -PermissionsStartOnly= -Persistent= -PipeSize= -Priority= +PropagateReloadFrom= +PropagateReloadTo= PropagatesReloadTo= -RandomizedDelaySec= -FixedRandomDelay= RebootArgument= -ReceiveBuffer= RefuseManualStart= RefuseManualStop= ReloadPropagatedFrom= -RemainAfterElapse= -RemainAfterExit= -RemoveOnStop= -RequiredBy= Requires= RequiresMountsFor= +RequiresOverridable= Requisite= -Restart= -RestartForceExitStatus= -RestartKillSignal= -RestartPreventExitStatus= -RestartSec= -ReusePort= -RootDirectory= -RootDirectoryStartOnly= -RootImage= -RootHash= -RootHashSignature= -RootVerity= -ExtensionImages= -RuntimeMaxSec= -SELinuxContextFromNet= -SecureBits= -SendBuffer= -SendSIGHUP= -SendSIGKILL= -Service= -Slice= -SloppyOptions= -SmackLabel= -SmackLabelIPIn= -SmackLabelIPOut= -SocketGroup= -SocketMode= -SocketProtocol= -SocketUser= -Sockets= +RequisiteOverridable= SourcePath= StartLimitAction= StartLimitBurst= +StartLimitInterval= StartLimitIntervalSec= -StartupBlockIOWeight= -StartupCPUShares= -StartupCPUWeight= -StartupIOWeight= StopWhenUnneeded= SuccessAction= -SuccessExitStatus= -SupplementaryGroups= -Symlinks= -TCPCongestion= -TasksAccounting= -TasksMax= -TimeoutIdleSec= -TimeoutSec= -TimeoutStartSec= -TimeoutStopSec= -TimeoutAbortSec= -Transparent= -TriggerLimitBurst= -TriggerLimitIntervalSec= -Type= -USBFunctionDescriptors= -USBFunctionStrings= -Unit= -User= -WakeSystem= -WantedBy= +SuccessActionExitStatus= Wants= -WatchdogSec= -What= -Where= -WorkingDirectory= -Writable= -fsck.mode= -fsck.repair= -fstab= -locale.LANG= -locale.LANGUAGE= -locale.LC_ADDRESS= -locale.LC_COLLATE= -locale.LC_CTYPE= -locale.LC_IDENTIFICATION= -locale.LC_MEASUREMENT= -locale.LC_MESSAGES= -locale.LC_MONETARY= -locale.LC_NAME= -locale.LC_NUMERIC= -locale.LC_PAPER= -locale.LC_TELEPHONE= -locale.LC_TIME= -luks.crypttab= -luks.key= -luks.name= -luks.options= -luks.uuid= -luks= -modules_load= -mount.usr= -mount.usrflags= -mount.usrfstype= -net.ifnames= -plymouth.enable= -quotacheck.mode= -rd.fstab= -rd.luks.crypttab= -rd.luks.key= -rd.luks.name= -rd.luks.options= -rd.luks.uuid= -rd.luks= -rd.modules_load= -rd.systemd.gpt_auto= -rd.systemd.unit= -rd.systemd.verity= -rd.udev.children_max= -rd.udev.event_timeout= -rd.udev.exec_delay= -rd.udev.log_level= -resume= -resumeflags= -root= -rootflags= -rootfstype= -roothash= -systemd.default_standard_error= -systemd.default_standard_output= -systemd.default_timeout_start_sec= -systemd.firstboot= -systemd.gpt_auto= -systemd.journald.forward_to_console= -systemd.journald.forward_to_kmsg= -systemd.journald.forward_to_syslog= -systemd.journald.forward_to_wall= -systemd.log_level= -systemd.log_location= -systemd.log_target= -systemd.machine_id= -systemd.mask= -systemd.restore_state= -systemd.service_watchdogs= -systemd.setenv= -systemd.unit= -systemd.verity= -systemd.verity_root_data= -systemd.verity_root_hash= -systemd.verity_root_options= -systemd.volatile= -systemd.wants= -systemd.watchdog_device= -udev.children_max= -udev.event_timeout= -udev.exec_delay= -udev.log_level= -vconsole.font= -vconsole.font_map= -vconsole.font_unimap= -vconsole.keymap= -vconsole.keymap_toggle= -ID_MODEL= -ID_MODEL_FROM_DATABASE= -SYSTEMD_ALIAS= -SYSTEMD_MOUNT_OPTIONS= -SYSTEMD_MOUNT_WHERE= -SYSTEMD_READY= -SYSTEMD_USER_WANTS= -SYSTEMD_WANTS= -link_priority= -static_node= -string_escape= -ARP= -ARPAllTargets= -ARPIPTargets= -ARPIntervalSec= -ARPValidate= -ActiveSlave= -AdSelect= -Address= -AddressAutoconfiguration= -AgeingTimeSec= +[Install] Alias= -AllSlavesActive= -AllowLocalRemote= -AllowPortToBeRoot= -AllowedIPs= -Anonymize= -Architecture= -AutoJoin= -AutoNegotiation= -BindCarrier= -BitsPerSecond= -Bond= -Bridge= -Broadcast= -Cache= -CacheFromLocalhost= -ClientIdentifier= -ConfigureWithoutCarrier= -CopyDSCP= -Cost= -CriticalConnection= -DHCP= -DHCPServer= -DNS= -DNSLifetimeSec= -DNSSEC= -DNSSECNegativeTrustAnchors= -DNSStubListener= -DNSStubListenerExtra= -DUIDRawData= -DUIDType= -DefaultLeaseTimeSec= -DefaultPVID= -Description= -Destination= -DestinationPort= -DiscoverPathMTU= -Domains= -DownDelaySec= -Driver= -Duplex= -DuplicateAddressDetection= -EgressUntagged= -EmitDNS= -EmitDomains= -EmitLLDP= -EmitNTP= -EmitRouter= -EmitTimezone= -EncapsulationLimit= -Endpoint= -FDBAgeingSec= -FailOverMACPolicy= -FallbackDNS= -FallbackNTP= -FastLeave= -FirewallMark= -Flags= -FlowLabel= -ForwardDelaySec= -From= -FwMark= -GVRP= -Gateway= -GatewayOnLink= -GenericReceiveOffload= -GenericSegmentationOffload= -GratuitousARP= -Group= -GroupForwardMask= -GroupPolicyExtension= -HairPin= -MulticastToUnicast= -HelloTimeSec= -HomeAddress= -Host= -Hostname= -IAID= -IPForward= -IPMasquerade= -IPv4LLRoute= -IPv4ProxyARP= -IPv6AcceptRA= -IPv6DuplicateAddressDetection= -IPv6FlowLabel= -IPv6HopLimit= -IPv6Preference= -IPv6PrefixDelegation= -IPv6PrivacyExtensions= -IPv6ProxyNDP= -IPv6ProxyNDPAddress= -IPv6Token= -Id= -IncomingInterface= -Independent= -InitialAdvertisedReceiveWindow= -InitialCongestionWindow= -InputKey= -InvertRule= -KernelCommandLine= -KernelVersion= -Key= -Kind= -L2MissNotification= -L3MissNotification= -LACPTransmitRate= -LLDP= -LLMNR= -Label= -LargeReceiveOffload= -LearnPacketIntervalSec= -LinkLocalAddressing= -ListenPort= -Local= -LooseBinding= -MACAddress= -MACAddressPolicy= -MACVLAN= -MIIMonitorSec= -MTUBytes= -MVRP= -MacLearning= -ManageTemporaryAddress= -Managed= -MaxAgeSec= -MaxLeaseTimeSec= -MaximumFDBEntries= -Metric= -MinLinks= -Mode= -MultiQueue= -MulticastDNS= -MulticastQuerier= -MulticastSnooping= -NTP= -Name= -NamePolicy= -OnLink= -OneQueue= -OriginalName= -OtherInformation= -OutgoingInterface= -OutputKey= -PVID= -PacketInfo= -PacketsPerSlave= -Path= -Peer= -PersistentKeepalive= -PollIntervalMaxSec= -PollIntervalMinSec= -PoolOffset= -PoolSize= -Port= -PortRange= -PreferredLifetime= -PreferredLifetimeSec= -PreferredSource= -Prefix= -PrefixRoute= -PresharedKey= -PrimaryReselectPolicy= -PrimarySlave= -Priority= -PrivateKey= -Protocol= -PublicKey= -QuickAck= -RapidCommit= -ReduceARPProxy= -Remote= -RemoteChecksumRx= -RemoteChecksumTx= -ReorderHeader= -RequestBroadcast= -RequiredForOnline= -ResendIGMP= -RootDistanceMaxSec= -RouteMetric= -RouteShortCircuit= -RouteTable= -RouterLifetimeSec= -RouterPreference= -STP= -Scope= -SendHostname= -Source= -SuppressPrefixLength= -TCP6SegmentationOffload= -TCPSegmentationOffload= -TOS= -TTL= -Table= -Timezone= -To= -TransmitHashPolicy= -Tunnel= -TxtData= -TxtText= -Type= -TypeOfService= -UDP6ZeroChecksumRx= -UDP6ZeroChecksumTx= -UDPChecksum= -UDPSegmentationOffload= -UnicastFlood= -Unmanaged= -UpDelaySec= -UseBPDU= -UseDNS= -UseDomains= -UseHostname= -UseMTU= -UseNTP= -UseRoutes= -UseTimezone= -User= -VLAN= -VLANFiltering= -VLANId= -VNetHeader= -VRF= -VXLAN= -ValidLifetimeSec= -VendorClassIdentifier= -Virtualization= -WakeOnLan= -Weight= -CODE_FILE= -CODE_FUNC= -CODE_LINE= -COREDUMP_UNIT= -COREDUMP_USER_UNIT= -ERRNO= -MESSAGE= -MESSAGE_ID= -OBJECT_AUDIT_LOGINUID= -OBJECT_AUDIT_SESSION= -OBJECT_CMDLINE= -OBJECT_COMM= -OBJECT_EXE= -OBJECT_GID= -OBJECT_PID= -OBJECT_SYSTEMD_CGROUP= -OBJECT_SYSTEMD_OWNER_UID= -OBJECT_SYSTEMD_SESSION= -OBJECT_SYSTEMD_UNIT= -OBJECT_SYSTEMD_USER_UNIT= -OBJECT_UID= -PRIORITY= -SYSLOG_FACILITY= -SYSLOG_IDENTIFIER= -SYSLOG_PID= -_AUDIT_LOGINUID= -_AUDIT_SESSION= -_BOOT_ID= -_CAP_EFFECTIVE= -_CMDLINE= -_COMM= -_EXE= -_GID= -_HOSTNAME= -_KERNEL_DEVICE= -_KERNEL_SUBSYSTEM= -_LINE_BREAK= -_MACHINE_ID= -_PID= -_SELINUX_CONTEXT= -_SOURCE_REALTIME_TIMESTAMP= -_STREAM_ID= -_SYSTEMD_CGROUP= -_SYSTEMD_INVOCATION_ID= -_SYSTEMD_OWNER_UID= -_SYSTEMD_SESSION= -_SYSTEMD_SLICE= -_SYSTEMD_UNIT= -_SYSTEMD_USER_UNIT= -_TRANSPORT= -_UDEV_DEVLINK= -_UDEV_DEVNODE= -_UDEV_SYSNAME= -_UID= -__CURSOR= -__MONOTONIC_TIMESTAMP= -__REALTIME_TIMESTAMP= -class= -type= -cipher= -hash= -header= -key-slot= -keyfile-offset= -keyfile-size= -offset= -size= -skip= -tcrypt-keyfile= -timeout= -tries= -x-systemd.after= -x-systemd.before= -x-systemd.device-timeout= -x-systemd.idle-timeout= -x-systemd.mount-timeout= -x-systemd.requires-mounts-for= -x-systemd.requires= -CPUAffinity= -CapabilityBoundingSet= -CrashChangeVT= -CrashReboot= -CrashShell= -CtrlAltDelBurstAction= -DefaultBlockIOAccounting= -DefaultCPUAccounting= -DefaultEnvironment= -DefaultIPAccounting= -DefaultLimitAS= -DefaultLimitCORE= -DefaultLimitCPU= -DefaultLimitDATA= -DefaultLimitFSIZE= -DefaultLimitLOCKS= -DefaultLimitMEMLOCK= -DefaultLimitMSGQUEUE= -DefaultLimitNICE= -DefaultLimitNOFILE= -DefaultLimitNPROC= -DefaultLimitRSS= -DefaultLimitRTPRIO= -DefaultLimitRTTIME= -DefaultLimitSIGPENDING= -DefaultLimitSTACK= -DefaultMemoryAccounting= -DefaultRestartSec= -DefaultStandardError= -DefaultStandardOutput= -DefaultStartLimitBurst= -DefaultStartLimitIntervalSec= -DefaultTasksAccounting= -DefaultTasksMax= -DefaultTimeoutStartSec= -DefaultTimeoutStopSec= -DefaultTimeoutAbortSec= -DefaultTimerAccuracySec= -DumpCore= -HibernateMode= -HibernateState= -HybridSleepMode= -HybridSleepState= -LogColor= -LogLevel= -LogLocation= -LogTarget= -RuntimeWatchdogSec= -ShowStatus= -RebootWatchdogSec= -ShutdownWatchdogSec= -KExecWatchdogSec= -SuspendMode= -SuspendState= -SystemCallArchitectures= -TimerSlackNSec= -WatchdogDevice= --N= --c= --e= --t= -ANSI_COLOR= +Also= +DefaultInstance= +RequiredBy= +WantedBy= +[Service] +AllowedCPUs= +AllowedMemoryNodes= +AmbientCapabilities= AppArmorProfile= -BUG_REPORT_URL= -BUILD_ID= -Bind= -BindReadOnly= -Boot= -Bridge= -CHASSIS= -CPE_NAME= +BindPaths= +BindReadOnlyPaths= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +BusName= +BusPolicy= +CPUAccounting= CPUAffinity= +CPUQuota= +CPUQuotaPeriodSec= CPUSchedulingPolicy= CPUSchedulingPriority= CPUSchedulingResetOnFork= +CPUShares= +CPUWeight= CacheDirectory= CacheDirectoryMode= -Capability= -Compress= +Capabilities= +CapabilityBoundingSet= ConfigurationDirectory= ConfigurationDirectoryMode= -DEPLOYMENT= -DropCapability= +CoredumpFilter= +DefaultMemoryLow= +DefaultMemoryMin= +Delegate= +DeviceAllow= +DevicePolicy= +DisableControllers= +DynamicUser= Environment= EnvironmentFile= -ExternalSizeMax= -FONT= -FONT_MAP= -FONT_UNIMAP= -ForwardToConsole= -ForwardToKMsg= -ForwardToSyslog= -ForwardToWall= -HOME_URL= -HandleHibernateKey= -HandleLidSwitch= -HandleLidSwitchDocked= -HandleLidSwitchExternalPower= -HandlePowerKey= -HandleSuspendKey= -HibernateKeyIgnoreInhibited= -HoldoffTimeoutSec= -ICON_NAME= -ID= -ID_LIKE= +ExecCondition= +ExecPaths= +ExecReload= +ExecStart= +ExecStartPost= +ExecStartPre= +ExecStop= +ExecStopPost= +ExitType= +ExtensionImages= +FailureAction= +FileDescriptorStoreMax= +FinalKillSignal= +Group= +GuessMainPID= +IOAccounting= +IODeviceLatencyTargetSec= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= IOSchedulingClass= IOSchedulingPriority= -IPVLAN= -IdleAction= -IdleActionSec= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPCNamespacePath= +IPEgressFilterPath= +IPIngressFilterPath= IgnoreSIGPIPE= +InaccessibleDirectories= InaccessiblePaths= -InhibitDelayMaxSec= -InhibitorsMax= -Interface= -JournalSizeMax= -KEYMAP= -KEYMAP_TOGGLE= -KeepFree= KeyringMode= -ProtectProc= -ProcSubset= -KillExcludeUsers= -KillOnlyUsers= +KillMode= KillSignal= -WatchdogSignal= -KillUserProcesses= -LOCATION= -LidSwitchIgnoreInhibited= LimitAS= LimitCORE= LimitCPU= @@ -821,97 +194,114 @@ LimitRTPRIO= LimitRTTIME= LimitSIGPENDING= LimitSTACK= -LineMax= +LoadCredential= LockPersonality= LogExtraFields= LogLevelMax= -LogRateLimitIntervalSec= +LogNamespace= LogRateLimitBurst= +LogRateLimitIntervalSec= LogsDirectory= LogsDirectoryMode= -MACVLAN= -MachineID= -MaxFileSec= -MaxLevelConsole= -MaxLevelKMsg= -MaxLevelStore= -MaxLevelSyslog= -MaxLevelWall= -MaxRetentionSec= -MaxUse= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimit= +ManagedOOMPreference= +ManagedOOMSwap= +MemoryAccounting= MemoryDenyWriteExecute= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemoryMin= +MemorySwapMax= +MountAPIVFS= MountFlags= -NAME= -NAutoVTs= +MountImages= +NUMAMask= +NUMAPolicy= +NetClass= +NetworkNamespacePath= Nice= +NoExecPaths= NoNewPrivileges= -NotifyReady= +NonBlocking= +NotifyAccess= +OOMPolicy= OOMScoreAdjust= -Overlay= -OverlayReadOnly= -PRETTY_HOSTNAME= -PRETTY_NAME= -PRIVACY_POLICY_URL= -Parameters= +PAMName= +PIDFile= PassEnvironment= +PermissionsStartOnly= Personality= -PivotRoot= -Port= -PowerKeyIgnoreInhibited= -Private= -PrivateIPC= PrivateDevices= +PrivateIPC= +PrivateMounts= PrivateNetwork= PrivateTmp= PrivateUsers= -PrivateUsersChown= -ProcessSizeMax= -ProcessTwo= +ProcSubset= +ProtectClock= ProtectControlGroups= ProtectHome= +ProtectHostname= +ProtectKernelLogs= ProtectKernelModules= ProtectKernelTunables= +ProtectProc= ProtectSystem= -RateLimitBurst= -RateLimitIntervalSec= -ReadKMsg= -ReadOnly= +ReadOnlyDirectories= ReadOnlyPaths= -ReadWriteOnly= +ReadWriteDirectories= ReadWritePaths= +RebootArgument= +RemainAfterExit= RemoveIPC= -ReserveVT= +Restart= +RestartForceExitStatus= +RestartKillSignal= +RestartPreventExitStatus= +RestartSec= RestrictAddressFamilies= RestrictNamespaces= RestrictRealtime= RestrictSUIDSGID= +RootDirectory= +RootDirectoryStartOnly= +RootHash= +RootHashSignature= +RootImage= +RootImageOptions= +RootVerity= RuntimeDirectory= -RuntimeDirectoryInodesMax= RuntimeDirectoryMode= RuntimeDirectoryPreserve= -RuntimeDirectorySize= -RuntimeKeepFree= -RuntimeMaxFileSize= -RuntimeMaxFiles= -RuntimeMaxUse= +RuntimeMaxSec= SELinuxContext= -SUPPORT_URL= -Seal= -ServerCertificateFile= -ServerKeyFile= -SessionsMax= +SecureBits= +SendSIGHUP= +SendSIGKILL= +SetCredential= +Slice= SmackProcessLabel= -SplitMode= +Sockets= StandardError= StandardInput= StandardInputData= StandardInputText= StandardOutput= +StartLimitAction= +StartLimitBurst= +StartLimitInterval= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= StateDirectory= StateDirectoryMode= -Storage= -SuspendKeyIgnoreInhibited= -SyncIntervalSec= +SuccessExitStatus= +SupplementaryGroups= +SysVStartPriority= SyslogFacility= SyslogIdentifier= SyslogLevel= @@ -919,31 +309,30 @@ SyslogLevelPrefix= SystemCallArchitectures= SystemCallErrorNumber= SystemCallFilter= -SystemKeepFree= -SystemMaxFileSize= -SystemMaxFiles= -SystemMaxUse= +SystemCallLog= TTYPath= TTYReset= TTYVHangup= TTYVTDisallocate= +TasksAccounting= +TasksMax= TemporaryFileSystem= +TimeoutAbortSec= +TimeoutCleanSec= +TimeoutSec= +TimeoutStartFailureMode= +TimeoutStartSec= +TimeoutStopFailureMode= +TimeoutStopSec= TimerSlackNSec= -TrustedCertificateFile= +Type= UMask= -URL= +USBFunctionDescriptors= +USBFunctionStrings= UnsetEnvironment= User= -UserTasksMax= UtmpIdentifier= UtmpMode= -VARIANT= -VARIANT_ID= -VERSION= -VERSION_CODENAME= -VERSION_ID= -VirtualEthernet= -VirtualEthernetExtra= -Volatile= +WatchdogSec= +WatchdogSignal= WorkingDirectory= -Zone= diff --git a/test/fuzz/fuzz-unit-file/directives.slice b/test/fuzz/fuzz-unit-file/directives.slice new file mode 100644 index 0000000000..2a35b3e518 --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.slice @@ -0,0 +1,52 @@ +slice +[Slice] +AllowedCPUs= +AllowedMemoryNodes= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +CPUAccounting= +CPUQuota= +CPUQuotaPeriodSec= +CPUShares= +CPUWeight= +DefaultMemoryLow= +DefaultMemoryMin= +Delegate= +DeviceAllow= +DevicePolicy= +DisableControllers= +IOAccounting= +IODeviceLatencyTargetSec= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPEgressFilterPath= +IPIngressFilterPath= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimit= +ManagedOOMPreference= +ManagedOOMSwap= +MemoryAccounting= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemoryMin= +MemorySwapMax= +NetClass= +Slice= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= +TasksAccounting= +TasksMax= diff --git a/test/fuzz/fuzz-unit-file/directives.socket b/test/fuzz/fuzz-unit-file/directives.socket new file mode 100644 index 0000000000..3931601ead --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.socket @@ -0,0 +1,253 @@ +socket +[Socket] +Accept= +AllowedCPUs= +AllowedMemoryNodes= +AmbientCapabilities= +AppArmorProfile= +Backlog= +BindIPv6Only= +BindPaths= +BindReadOnlyPaths= +BindToDevice= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +Broadcast= +CPUAccounting= +CPUAffinity= +CPUQuota= +CPUQuotaPeriodSec= +CPUSchedulingPolicy= +CPUSchedulingPriority= +CPUSchedulingResetOnFork= +CPUShares= +CPUWeight= +CacheDirectory= +CacheDirectoryMode= +Capabilities= +CapabilityBoundingSet= +ConfigurationDirectory= +ConfigurationDirectoryMode= +CoredumpFilter= +DefaultMemoryLow= +DefaultMemoryMin= +DeferAcceptSec= +Delegate= +DeviceAllow= +DevicePolicy= +DirectoryMode= +DisableControllers= +DynamicUser= +Environment= +EnvironmentFile= +ExecPaths= +ExecStartPost= +ExecStartPre= +ExecStopPost= +ExecStopPre= +ExtensionImages= +FileDescriptorName= +FinalKillSignal= +FlushPending= +FreeBind= +Group= +IOAccounting= +IODeviceLatencyTargetSec= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= +IOSchedulingClass= +IOSchedulingPriority= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPCNamespacePath= +IPEgressFilterPath= +IPIngressFilterPath= +IPTOS= +IPTTL= +IgnoreSIGPIPE= +InaccessibleDirectories= +InaccessiblePaths= +KeepAlive= +KeepAliveIntervalSec= +KeepAliveProbes= +KeepAliveTimeSec= +KeyringMode= +KillMode= +KillSignal= +LimitAS= +LimitCORE= +LimitCPU= +LimitDATA= +LimitFSIZE= +LimitLOCKS= +LimitMEMLOCK= +LimitMSGQUEUE= +LimitNICE= +LimitNOFILE= +LimitNPROC= +LimitRSS= +LimitRTPRIO= +LimitRTTIME= +LimitSIGPENDING= +LimitSTACK= +ListenDatagram= +ListenFIFO= +ListenMessageQueue= +ListenNetlink= +ListenSequentialPacket= +ListenSpecial= +ListenStream= +ListenUSBFunction= +LoadCredential= +LockPersonality= +LogExtraFields= +LogLevelMax= +LogNamespace= +LogRateLimitBurst= +LogRateLimitIntervalSec= +LogsDirectory= +LogsDirectoryMode= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimit= +ManagedOOMPreference= +ManagedOOMSwap= +Mark= +MaxConnections= +MaxConnectionsPerSource= +MemoryAccounting= +MemoryDenyWriteExecute= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemoryMin= +MemorySwapMax= +MessageQueueMaxMessages= +MessageQueueMessageSize= +MountAPIVFS= +MountFlags= +MountImages= +NUMAMask= +NUMAPolicy= +NetClass= +NetworkNamespacePath= +Nice= +NoDelay= +NoExecPaths= +NoNewPrivileges= +OOMScoreAdjust= +PAMName= +PassCredentials= +PassEnvironment= +PassPacketInfo= +PassSecurity= +Personality= +PipeSize= +Priority= +PrivateDevices= +PrivateIPC= +PrivateMounts= +PrivateNetwork= +PrivateTmp= +PrivateUsers= +ProcSubset= +ProtectClock= +ProtectControlGroups= +ProtectHome= +ProtectHostname= +ProtectKernelLogs= +ProtectKernelModules= +ProtectKernelTunables= +ProtectProc= +ProtectSystem= +ReadOnlyDirectories= +ReadOnlyPaths= +ReadWriteDirectories= +ReadWritePaths= +ReceiveBuffer= +RemoveIPC= +RemoveOnStop= +RestartKillSignal= +RestrictAddressFamilies= +RestrictNamespaces= +RestrictRealtime= +RestrictSUIDSGID= +ReusePort= +RootDirectory= +RootHash= +RootHashSignature= +RootImage= +RootImageOptions= +RootVerity= +RuntimeDirectory= +RuntimeDirectoryMode= +RuntimeDirectoryPreserve= +SELinuxContext= +SELinuxContextFromNet= +SecureBits= +SendBuffer= +SendSIGHUP= +SendSIGKILL= +Service= +SetCredential= +Slice= +SmackLabel= +SmackLabelIPIn= +SmackLabelIPOut= +SmackProcessLabel= +SocketGroup= +SocketMode= +SocketProtocol= +SocketUser= +StandardError= +StandardInput= +StandardInputData= +StandardInputText= +StandardOutput= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= +StateDirectory= +StateDirectoryMode= +SupplementaryGroups= +Symlinks= +SyslogFacility= +SyslogIdentifier= +SyslogLevel= +SyslogLevelPrefix= +SystemCallArchitectures= +SystemCallErrorNumber= +SystemCallFilter= +SystemCallLog= +TCPCongestion= +TTYPath= +TTYReset= +TTYVHangup= +TTYVTDisallocate= +TasksAccounting= +TasksMax= +TemporaryFileSystem= +TimeoutCleanSec= +TimeoutSec= +TimerSlackNSec= +Timestamping= +Transparent= +TriggerLimitBurst= +TriggerLimitIntervalSec= +UMask= +UnsetEnvironment= +User= +UtmpIdentifier= +UtmpMode= +WatchdogSignal= +WorkingDirectory= +Writable= diff --git a/test/fuzz/fuzz-unit-file/directives.swap b/test/fuzz/fuzz-unit-file/directives.swap new file mode 100644 index 0000000000..3998f8bd33 --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.swap @@ -0,0 +1,197 @@ +swap +[Swap] +AllowedCPUs= +AllowedMemoryNodes= +AmbientCapabilities= +AppArmorProfile= +BindPaths= +BindReadOnlyPaths= +BlockIOAccounting= +BlockIODeviceWeight= +BlockIOReadBandwidth= +BlockIOWeight= +BlockIOWriteBandwidth= +CPUAccounting= +CPUAffinity= +CPUQuota= +CPUQuotaPeriodSec= +CPUSchedulingPolicy= +CPUSchedulingPriority= +CPUSchedulingResetOnFork= +CPUShares= +CPUWeight= +CacheDirectory= +CacheDirectoryMode= +Capabilities= +CapabilityBoundingSet= +ConfigurationDirectory= +ConfigurationDirectoryMode= +CoredumpFilter= +DefaultMemoryLow= +DefaultMemoryMin= +Delegate= +DeviceAllow= +DevicePolicy= +DisableControllers= +DynamicUser= +Environment= +EnvironmentFile= +ExecPaths= +ExtensionImages= +FinalKillSignal= +Group= +IOAccounting= +IODeviceLatencyTargetSec= +IODeviceWeight= +IOReadBandwidthMax= +IOReadIOPSMax= +IOSchedulingClass= +IOSchedulingPriority= +IOWeight= +IOWriteBandwidthMax= +IOWriteIOPSMax= +IPAccounting= +IPAddressAllow= +IPAddressDeny= +IPCNamespacePath= +IPEgressFilterPath= +IPIngressFilterPath= +IgnoreSIGPIPE= +InaccessibleDirectories= +InaccessiblePaths= +KeyringMode= +KillMode= +KillSignal= +LimitAS= +LimitCORE= +LimitCPU= +LimitDATA= +LimitFSIZE= +LimitLOCKS= +LimitMEMLOCK= +LimitMSGQUEUE= +LimitNICE= +LimitNOFILE= +LimitNPROC= +LimitRSS= +LimitRTPRIO= +LimitRTTIME= +LimitSIGPENDING= +LimitSTACK= +LoadCredential= +LockPersonality= +LogExtraFields= +LogLevelMax= +LogNamespace= +LogRateLimitBurst= +LogRateLimitIntervalSec= +LogsDirectory= +LogsDirectoryMode= +ManagedOOMMemoryPressure= +ManagedOOMMemoryPressureLimit= +ManagedOOMPreference= +ManagedOOMSwap= +MemoryAccounting= +MemoryDenyWriteExecute= +MemoryHigh= +MemoryLimit= +MemoryLow= +MemoryMax= +MemoryMin= +MemorySwapMax= +MountAPIVFS= +MountFlags= +MountImages= +NUMAMask= +NUMAPolicy= +NetClass= +NetworkNamespacePath= +Nice= +NoExecPaths= +NoNewPrivileges= +OOMScoreAdjust= +Options= +PAMName= +PassEnvironment= +Personality= +Priority= +PrivateDevices= +PrivateIPC= +PrivateMounts= +PrivateNetwork= +PrivateTmp= +PrivateUsers= +ProcSubset= +ProtectClock= +ProtectControlGroups= +ProtectHome= +ProtectHostname= +ProtectKernelLogs= +ProtectKernelModules= +ProtectKernelTunables= +ProtectProc= +ProtectSystem= +ReadOnlyDirectories= +ReadOnlyPaths= +ReadWriteDirectories= +ReadWritePaths= +RemoveIPC= +RestartKillSignal= +RestrictAddressFamilies= +RestrictNamespaces= +RestrictRealtime= +RestrictSUIDSGID= +RootDirectory= +RootHash= +RootHashSignature= +RootImage= +RootImageOptions= +RootVerity= +RuntimeDirectory= +RuntimeDirectoryMode= +RuntimeDirectoryPreserve= +SELinuxContext= +SecureBits= +SendSIGHUP= +SendSIGKILL= +SetCredential= +Slice= +SmackProcessLabel= +StandardError= +StandardInput= +StandardInputData= +StandardInputText= +StandardOutput= +StartupBlockIOWeight= +StartupCPUShares= +StartupCPUWeight= +StartupIOWeight= +StateDirectory= +StateDirectoryMode= +SupplementaryGroups= +SyslogFacility= +SyslogIdentifier= +SyslogLevel= +SyslogLevelPrefix= +SystemCallArchitectures= +SystemCallErrorNumber= +SystemCallFilter= +SystemCallLog= +TTYPath= +TTYReset= +TTYVHangup= +TTYVTDisallocate= +TasksAccounting= +TasksMax= +TemporaryFileSystem= +TimeoutCleanSec= +TimeoutSec= +TimerSlackNSec= +UMask= +UnsetEnvironment= +User= +UtmpIdentifier= +UtmpMode= +WatchdogSignal= +What= +WorkingDirectory= diff --git a/test/fuzz/fuzz-unit-file/directives.timer b/test/fuzz/fuzz-unit-file/directives.timer new file mode 100644 index 0000000000..40075cf3e7 --- /dev/null +++ b/test/fuzz/fuzz-unit-file/directives.timer @@ -0,0 +1,17 @@ +timer +[Timer] +AccuracySec= +FixedRandomDelay= +OnActiveSec= +OnBootSec= +OnCalendar= +OnClockChange= +OnStartupSec= +OnTimezoneChange= +OnUnitActiveSec= +OnUnitInactiveSec= +Persistent= +RandomizedDelaySec= +RemainAfterElapse= +Unit= +WakeSystem= diff --git a/tools/check-directives.sh b/tools/check-directives.sh index 1d11fa98a1..2274d36e60 100755 --- a/tools/check-directives.sh +++ b/tools/check-directives.sh @@ -1,37 +1,71 @@ #!/usr/bin/env bash # SPDX-License-Identifier: LGPL-2.1-or-later -set -e +set -eu -which perl &>/dev/null || exit 77 +SOURCE_ROOT="${1:?Missing argument: project source root}" +BUILD_ROOT="${2:?Missing argument: project build root}" + +command -v gawk &>/dev/null || exit 77 function generate_directives() { - perl -aF'/[\s,]+/' -ne ' - if (my ($s, $d) = ($F[0] =~ /^([^\s\.]+)\.([^\s\.]+)$/)) { $d{$s}{"$d="} = 1; } - END { while (my ($key, $value) = each %d) { - printf "[%s]\n%s\n", $key, join("\n", keys(%$value)) - }}' "$1" + gawk -v sec_rx="${2:-""}" -v unit_type="${3:-""}" ' + match($0, /^([^ \t\.]+)\.([^ \t\.,]+)/, m) { + # res[section][directive] = 1 + res[m[1]][m[2]] = 1; + } + END { + if (unit_type) + print unit_type + + for (section in res) { + if (sec_rx && section !~ sec_rx) + continue + + print "[" section "]"; + for (directive in res[section]) { + print directive "="; + } + } + } + ' "$1" } ret=0 if ! diff \ - <(generate_directives "$1"/src/network/networkd-network-gperf.gperf | sort) \ - <(cat "$1"/test/fuzz/fuzz-network-parser/directives.network | sort); then + <(generate_directives "$SOURCE_ROOT"/src/network/networkd-network-gperf.gperf | sort) \ + <(sort "$SOURCE_ROOT"/test/fuzz/fuzz-network-parser/directives.network); then echo "Looks like test/fuzz/fuzz-network-parser/directives.network hasn't been updated" ret=1 fi if ! diff \ - <(generate_directives "$1"/src/network/netdev/netdev-gperf.gperf | sort) \ - <(cat "$1"/test/fuzz/fuzz-netdev-parser/directives.netdev | sort); then + <(generate_directives "$SOURCE_ROOT"/src/network/netdev/netdev-gperf.gperf | sort) \ + <(sort "$SOURCE_ROOT"/test/fuzz/fuzz-netdev-parser/directives.netdev); then echo "Looks like test/fuzz/fuzz-netdev-parser/directives.netdev hasn't been updated" ret=1 fi if ! diff \ - <(generate_directives "$1"/src/udev/net/link-config-gperf.gperf | sort) \ - <(cat "$1"/test/fuzz/fuzz-link-parser/directives.link | sort) ; then + <(generate_directives "$SOURCE_ROOT"/src/udev/net/link-config-gperf.gperf | sort) \ + <(sort "$SOURCE_ROOT"/test/fuzz/fuzz-link-parser/directives.link) ; then echo "Looks like test/fuzz/fuzz-link-parser/directives.link hasn't been updated" ret=1 fi +for section in Automount Mount Path Scope Slice Socket Swap Timer; do + if ! diff \ + <(generate_directives "$BUILD_ROOT"/src/core/load-fragment-gperf.gperf "$section" "${section,,}" | sort) \ + <(sort "$SOURCE_ROOT/test/fuzz/fuzz-unit-file/directives.${section,,}") ; then + echo "Looks like test/fuzz/fuzz-unit-file/directives.${section,,} hasn't been updated" + ret=1 + fi +done + +if ! diff \ + <(generate_directives "$BUILD_ROOT"/src/core/load-fragment-gperf.gperf "(Service|Unit|Install)" "service" | sort) \ + <(sort "$SOURCE_ROOT/test/fuzz/fuzz-unit-file/directives.service") ; then + echo "Looks like test/fuzz/fuzz-unit-file/directives.service hasn't been updated" + ret=1 +fi + exit $ret |